You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by je...@apache.org on 2012/07/21 00:49:47 UTC

git commit: cloudstack 3.0 UI - VPC - add zone wizard - enable VpcVirtualRouter element, enable VpcVirtualRouter provider for advanced zone.

Updated Branches:
  refs/heads/vpc dc847ed83 -> 254c05813


cloudstack 3.0 UI - VPC - add zone wizard - enable VpcVirtualRouter element, enable VpcVirtualRouter provider for advanced zone.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/254c0581
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/254c0581
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/254c0581

Branch: refs/heads/vpc
Commit: 254c05813c1972266a656ad610004248a0cf4fb3
Parents: dc847ed
Author: Jessica Wang <je...@citrix.com>
Authored: Fri Jul 20 15:49:13 2012 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Fri Jul 20 15:49:13 2012 -0700

----------------------------------------------------------------------
 ui/scripts/zoneWizard.js |  119 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 115 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/254c0581/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index 92015bb..e4ca36d 100644
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -14,6 +14,7 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
+
 (function(cloudStack, $) {
   var selectedNetworkOfferingHavingSG = false;
   var selectedNetworkOfferingHavingEIP = false;
@@ -1230,7 +1231,7 @@
     },
 
     action: function(args) {
-      var advZoneConfiguredPhysicalNetworkCount = 0; //for multiple physical networks in advanced zone
+      var advZoneConfiguredVirtualRouterCount = 0; //for multiple physical networks in advanced zone. Each physical network has 2 virtual routers: regular one and VPC one.
 
       var success = args.response.success;
       var error = args.response.error;
@@ -1878,7 +1879,7 @@
                           if (result.jobstatus == 1) {
                             //alert("updatePhysicalNetwork succeeded.");
 
-                            // get network service provider ID of Virtual Router
+                            // ***** Virtual Router ***** (begin) *****
                             var virtualRouterProviderId;
                             $.ajax({
                               url: createURL("listNetworkServiceProviders&name=VirtualRouter&physicalNetworkId=" + thisPhysicalNetwork.id),
@@ -1951,8 +1952,8 @@
 																											clearInterval(enableVirtualRouterProviderIntervalID); 
 																											
                                                       if (result.jobstatus == 1) { //Virtual Router Provider has been enabled successfully
-                                                        advZoneConfiguredPhysicalNetworkCount++;
-                                                        if(advZoneConfiguredPhysicalNetworkCount == args.data.returnedPhysicalNetworks.length) { //not call addPod() until all physical networks get configured
+                                                        advZoneConfiguredVirtualRouterCount++;
+                                                        if(advZoneConfiguredVirtualRouterCount == (args.data.returnedPhysicalNetworks.length * 2)) { //not call addPod() until virtualRouter and vpcVirtualRouter of all physical networks get configured
                                                           stepFns.addPod({
                                                             data: args.data
                                                           });
@@ -1985,6 +1986,116 @@
 																}, 3000); 	
                               }
                             });
+														// ***** Virtual Router ***** (end) *****
+														
+														// ***** VPC Virtual Router ***** (begin) *****
+                            var vpcVirtualRouterProviderId;
+                            $.ajax({
+                              url: createURL("listNetworkServiceProviders&name=VpcVirtualRouter&physicalNetworkId=" + thisPhysicalNetwork.id),
+                              dataType: "json",
+                              async: false,
+                              success: function(json) {
+                                var items = json.listnetworkserviceprovidersresponse.networkserviceprovider;
+                                if(items != null && items.length > 0) {
+                                  vpcVirtualRouterProviderId = items[0].id;
+                                }
+                              }
+                            });
+                            if(vpcVirtualRouterProviderId == null) {
+                              alert("error: listNetworkServiceProviders API doesn't return VpcVirtualRouter provider ID");
+                              return;
+                            }
+
+                            var vpcVirtualRouterElementId;
+                            $.ajax({
+                              url: createURL("listVirtualRouterElements&nspid=" + vpcVirtualRouterProviderId),
+                              dataType: "json",
+                              async: false,
+                              success: function(json) {
+                                var items = json.listvirtualrouterelementsresponse.virtualrouterelement;
+                                if(items != null && items.length > 0) {
+                                  vpcVirtualRouterElementId = items[0].id;
+                                }
+                              }
+                            });
+                            if(vpcVirtualRouterElementId == null) {
+                              alert("error: listVirtualRouterElements API doesn't return VPC Virtual Router Element Id");
+                              return;
+                            }
+
+                            $.ajax({
+                              url: createURL("configureVirtualRouterElement&enabled=true&id=" + vpcVirtualRouterElementId),
+                              dataType: "json",
+                              async: false,
+                              success: function(json) {
+                                var jobId = json.configurevirtualrouterelementresponse.jobid;                                
+																var enableVpcVirtualRouterElementIntervalID = setInterval(function() { 	
+                                  $.ajax({
+                                    url: createURL("queryAsyncJobResult&jobId="+jobId),
+                                    dataType: "json",
+                                    success: function(json) {
+                                      var result = json.queryasyncjobresultresponse;
+                                      if (result.jobstatus == 0) {
+                                        return; //Job has not completed
+                                      }
+                                      else {                                        
+																				clearInterval(enableVpcVirtualRouterElementIntervalID); 
+																				
+                                        if (result.jobstatus == 1) { //configureVirtualRouterElement succeeded
+                                          $.ajax({
+                                            url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + vpcVirtualRouterProviderId),
+                                            dataType: "json",
+                                            async: false,
+                                            success: function(json) {
+                                              var jobId = json.updatenetworkserviceproviderresponse.jobid;                                             
+																							var enableVpcVirtualRouterProviderIntervalID = setInterval(function() { 	
+                                                $.ajax({
+                                                  url: createURL("queryAsyncJobResult&jobId="+jobId),
+                                                  dataType: "json",
+                                                  success: function(json) {
+                                                    var result = json.queryasyncjobresultresponse;
+                                                    if (result.jobstatus == 0) {
+                                                      return; //Job has not completed
+                                                    }
+                                                    else {                                                      
+																											clearInterval(enableVpcVirtualRouterProviderIntervalID); 
+																											
+                                                      if (result.jobstatus == 1) { //Virtual Router Provider has been enabled successfully
+                                                        advZoneConfiguredVirtualRouterCount++;
+                                                        if(advZoneConfiguredVirtualRouterCount == (args.data.returnedPhysicalNetworks.length * 2)) { //not call addPod() until virtualRouter and vpcVirtualRouter of all physical networks get configured
+                                                          stepFns.addPod({
+                                                            data: args.data
+                                                          });
+                                                        }
+                                                      }
+                                                      else if (result.jobstatus == 2) {
+                                                        alert("failed to enable VPC Virtual Router Provider. Error: " + _s(result.jobresult.errortext));
+                                                      }
+                                                    }
+                                                  },
+                                                  error: function(XMLHttpResponse) {
+                                                    var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+                                                    alert("updateNetworkServiceProvider failed. Error: " + errorMsg);
+                                                  }
+                                                });                                              
+																							}, 3000); 	
+                                            }
+                                          });
+                                        }
+                                        else if (result.jobstatus == 2) {
+                                          alert("configureVirtualRouterElement failed. Error: " + _s(result.jobresult.errortext));
+                                        }
+                                      }
+                                    },
+                                    error: function(XMLHttpResponse) {
+                                      var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+                                      alert("configureVirtualRouterElement failed. Error: " + errorMsg);
+                                    }
+                                  });                                
+																}, 3000); 	
+                              }
+                            });
+														// ***** VPC Virtual Router ***** (end) *****
                           }
                           else if (result.jobstatus == 2) {
                             alert("updatePhysicalNetwork failed. Error: " + _s(result.jobresult.errortext));