From 1ffd86184664c84442ebdfd5b60efea755967d2e Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Fri, 25 Feb 2011 19:26:20 -0800 Subject: [PATCH] bug 8655: VM Wizard - step 4 - NOT create virtual network when zone.securityGroupsEnabled is true and users choose to launch VM on private network instead of using security groups. --- ui/scripts/cloud.core.instance.js | 131 +++++++++++++++--------------- 1 file changed, 67 insertions(+), 64 deletions(-) diff --git a/ui/scripts/cloud.core.instance.js b/ui/scripts/cloud.core.instance.js index 967dce0d5f2..76d14716a06 100644 --- a/ui/scripts/cloud.core.instance.js +++ b/ui/scripts/cloud.core.instance.js @@ -767,7 +767,7 @@ function initVMWizard() { return false; }); - function vmWizardShowNetworkContainer($thisPopup) { + function vmWizardShowNetworkContainer($thisPopup, isVirtualNetworkNeeded) { $thisPopup.find("#step4").find("#network_container").show(); $thisPopup.find("#step4").find("#securitygroup_container").hide(); $thisPopup.find("#step4").find("#for_no_network_support").hide(); @@ -778,66 +778,69 @@ function initVMWizard() { async: false, success: function(json) { var networks = json.listnetworksresponse.network; - var virtualNetwork = null; - if (networks != null && networks.length > 0) { - for (var i = 0; i < networks.length; i++) { - if (networks[i].type == 'Virtual') { - virtualNetwork = networks[i]; - } - } - } - var $virtualNetworkElement = $thisPopup.find("#network_virtual_container"); - - // Setup Virtual Networks - var requiredVirtual = false; - var defaultNetworkAdded = false; - var availableSecondary = false; - if (virtualNetwork == null) { - $.ajax({ - data: createURL("command=listNetworkOfferings&guestiptype=Virtual"), - dataType: "json", - async: false, - success: function(json) { - var networkOfferings = json.listnetworkofferingsresponse.networkoffering; - if (networkOfferings != null && networkOfferings.length > 0) { - for (var i = 0; i < networkOfferings.length; i++) { - if (networkOfferings[i].isdefault == true && networkOfferings[i].availability != "Unavailable") { - // Create a virtual network - var networkName = "Virtual Network"; - var networkDesc = "A dedicated virtualized network for your account. The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router."; - $.ajax({ - data: createURL("command=createNetwork&networkOfferingId="+networkOfferings[i].id+"&name="+todb(networkName)+"&displayText="+todb(networkDesc)+"&zoneId="+$thisPopup.find("#wizard_zone").val()), - dataType: "json", - async: false, - success: function(json) { - var network = json.createnetworkresponse.network; - $virtualNetworkElement.show(); - if (network.networkofferingavailability == 'Required') { - requiredVirtual = true; - $virtualNetworkElement.find("#network_virtual").attr('disabled', true); - } - defaultNetworkAdded = true; - $virtualNetworkElement.find("#network_virtual").data("id", network.id).data("jsonObj", network); - } - }); - } - } - } - } - }); - } else { - if (virtualNetwork.networkofferingavailability != 'Unavailable') { - $virtualNetworkElement.show(); - if (virtualNetwork.networkofferingavailability == 'Required') { - requiredVirtual = true; - $virtualNetworkElement.find("#network_virtual").attr('disabled', true); - } - defaultNetworkAdded = true; - $virtualNetworkElement.data("id", virtualNetwork.id); - $virtualNetworkElement.find("#network_virtual").data("id", virtualNetwork.id).data("jsonObj", virtualNetwork); - } else { - $virtualNetworkElement.hide(); - } + + // Setup Virtual Network + if(isVirtualNetworkNeeded == true) { + var virtualNetwork = null; + if (networks != null && networks.length > 0) { + for (var i = 0; i < networks.length; i++) { + if (networks[i].type == 'Virtual') { + virtualNetwork = networks[i]; + } + } + } + var $networkVirtualContainer = $thisPopup.find("#network_virtual_container"); + var requiredVirtual = false; + var defaultNetworkAdded = false; + var availableSecondary = false; + if (virtualNetwork == null) { + $.ajax({ + data: createURL("command=listNetworkOfferings&guestiptype=Virtual"), + dataType: "json", + async: false, + success: function(json) { + var networkOfferings = json.listnetworkofferingsresponse.networkoffering; + if (networkOfferings != null && networkOfferings.length > 0) { + for (var i = 0; i < networkOfferings.length; i++) { + if (networkOfferings[i].isdefault == true && networkOfferings[i].availability != "Unavailable") { + // Create a virtual network + var networkName = "Virtual Network"; + var networkDesc = "A dedicated virtualized network for your account. The broadcast domain is contained within a VLAN and all public network access is routed out by a virtual router."; + $.ajax({ + data: createURL("command=createNetwork&networkOfferingId="+networkOfferings[i].id+"&name="+todb(networkName)+"&displayText="+todb(networkDesc)+"&zoneId="+$thisPopup.find("#wizard_zone").val()), + dataType: "json", + async: false, + success: function(json) { + var network = json.createnetworkresponse.network; + $networkVirtualContainer.show(); + if (network.networkofferingavailability == 'Required') { + requiredVirtual = true; + $networkVirtualContainer.find("#network_virtual").attr('disabled', true); + } + defaultNetworkAdded = true; + $networkVirtualContainer.find("#network_virtual").data("id", network.id).data("jsonObj", network); + } + }); + } + } + } + } + }); + } + else { + if (virtualNetwork.networkofferingavailability != 'Unavailable') { + $networkVirtualContainer.show(); + if (virtualNetwork.networkofferingavailability == 'Required') { + requiredVirtual = true; + $networkVirtualContainer.find("#network_virtual").attr('disabled', true); + } + defaultNetworkAdded = true; + $networkVirtualContainer.data("id", virtualNetwork.id); + $networkVirtualContainer.find("#network_virtual").data("id", virtualNetwork.id).data("jsonObj", virtualNetwork); + } else { + $networkVirtualContainer.hide(); + } + } } // Setup Direct Networks @@ -1032,8 +1035,8 @@ function initVMWizard() { var zoneObj = $thisPopup.find("#wizard_zone option:selected").data("zoneObj"); - if (zoneObj.securitygroupsenabled == false) { //show network container - vmWizardShowNetworkContainer($thisPopup); + if (zoneObj.securitygroupsenabled == false) { //show network container + vmWizardShowNetworkContainer($thisPopup, true); //isVirtualNetworkNeeded == true } else if (zoneObj.securitygroupsenabled == true) { // if security group is enabled var hasDedicatedDirectTaggedDefaultNetwork = false; @@ -1064,7 +1067,7 @@ function initVMWizard() { .dialog("option", "buttons", { "Yes": function() { //present the current UI we have today - vmWizardShowNetworkContainer($thisPopup); + vmWizardShowNetworkContainer($thisPopup, false); //isVirtualNetworkNeeded == false $(this).dialog("close"); }, "No": function() {