diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js index 0c7424d01bd..5609ca7b291 100755 --- a/ui/scripts/zoneWizard.js +++ b/ui/scripts/zoneWizard.js @@ -1896,7 +1896,7 @@ clearInterval(enablePhysicalNetworkIntervalID); if (result.jobstatus == 1) { - //alert("updatePhysicalNetwork succeeded."); + //alert("enable physical network succeeded."); // ***** Virtual Router ***** (begin) ***** var virtualRouterProviderId; @@ -1972,11 +1972,19 @@ 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 - }); - } + + if(advZoneConfiguredVirtualRouterCount == args.data.returnedPhysicalNetworks.length) { //not call next stepFns.addXXX() until virtualRouter of all physical networks get configured + if(args.data.zone.sgEnabled != true) { //Advanced SG-disabled zone + stepFns.addPod({ + data: args.data + }); + } + else { //args.data.zone.sgEnabled == true //Advanced SG-enabled zone + stepFns.addGuestNetwork({ + data: args.data + }); + } + } } else if (result.jobstatus == 2) { alert("failed to enable Virtual Router Provider. Error: " + _s(result.jobresult.errortext)); @@ -2007,123 +2015,174 @@ }); // ***** 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; - } + if(args.data.zone.sgEnabled != true) { //Advanced SG-disabled zone + // ***** 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; - } + 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) ***** + $.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) { //VPC Virtual Router has been enabled successfully + //don't need to do anything here + } + 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("failed to enable VPC Virtual Router Provider. 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 { //args.data.zone.sgEnabled == true //Advanced SG-enabled zone + message(dictionary['message.enabling.security.group.provider']); + + // get network service provider ID of Security Group + var securityGroupProviderId; + $.ajax({ + url: createURL("listNetworkServiceProviders&name=SecurityGroupProvider&physicalNetworkId=" + thisPhysicalNetwork.id), + dataType: "json", + async: false, + success: function(json) { + var items = json.listnetworkserviceprovidersresponse.networkserviceprovider; + if(items != null && items.length > 0) { + securityGroupProviderId = items[0].id; + } + } + }); + if(securityGroupProviderId == null) { + alert("error: listNetworkServiceProviders API doesn't return security group provider ID"); + return; + } + + $.ajax({ + url: createURL("updateNetworkServiceProvider&state=Enabled&id=" + securityGroupProviderId), + dataType: "json", + async: false, + success: function(json) { + var enableSecurityGroupProviderIntervalID = setInterval(function() { + $.ajax({ + url: createURL("queryAsyncJobResult&jobId=" + json.updatenetworkserviceproviderresponse.jobid), + dataType: "json", + success: function(json) { + var result = json.queryasyncjobresultresponse; + if (result.jobstatus == 0) { + return; //Job has not completed + } + else { + clearInterval(enableSecurityGroupProviderIntervalID); + + if (result.jobstatus == 1) { //Security group provider has been enabled successfully + //don't need to do anything here + } + else if (result.jobstatus == 2) { + alert("failed to enable security group provider. Error: " + _s(result.jobresult.errortext)); + } + } + }, + error: function(XMLHttpResponse) { + var errorMsg = parseXMLHttpResponse(XMLHttpResponse); + alert("failed to enable security group provider. Error: " + errorMsg); + } + }); + }, 3000); + } + }); + } } else if (result.jobstatus == 2) { - alert("updatePhysicalNetwork failed. Error: " + _s(result.jobresult.errortext)); + alert("failed to enable physical network. Error: " + _s(result.jobresult.errortext)); } } }, - error: function(XMLHttpResponse) { - var errorMsg = parseXMLHttpResponse(XMLHttpResponse); - alert("updatePhysicalNetwork failed. Error: " + errorMsg); + error: function(XMLHttpResponse) { + alert("failed to enable physical network. Error: " + parseXMLHttpResponse(XMLHttpResponse)); } }); }, 3000);