From 54ece4c4606ce88e0801553e3af0dc957f1f8fab Mon Sep 17 00:00:00 2001 From: will Date: Fri, 3 Dec 2010 16:12:52 -0800 Subject: [PATCH] - Enable virtual networking mode in the VM wizard. --- ui/jsp/instance.jsp | 17 +++----- ui/scripts/cloud.core.instance.js | 72 ++++++++++++++++++++++++++++--- 2 files changed, 74 insertions(+), 15 deletions(-) diff --git a/ui/jsp/instance.jsp b/ui/jsp/instance.jsp index 2b2a0889475..54cd50b78b1 100644 --- a/ui/jsp/instance.jsp +++ b/ui/jsp/instance.jsp @@ -622,24 +622,20 @@

-
-
-

Under Construction

-
-
- - +
+ +
-

- A virtual private network that is fronted by a virtual router. +

+ A dedicated virtualized network for your account. The broadcast domain is contrained within a VLAN and all public network access is routed out by a virtual router.

+
diff --git a/ui/scripts/cloud.core.instance.js b/ui/scripts/cloud.core.instance.js index 0672beba468..311fbae4f9b 100644 --- a/ui/scripts/cloud.core.instance.js +++ b/ui/scripts/cloud.core.instance.js @@ -479,9 +479,51 @@ function initVMWizard() { //Safari and Chrome are not smart enough to make checkbox checked if html markup is appended by JQuery.append(). So, the following 2 lines are added. var html_all = $rootDiskOfferingContainer.html(); $rootDiskOfferingContainer.html(html_all); - //***** root disk offering: "custom", existing disk offerings in database (end) ********************************************************************* + //***** root disk offering: "custom", existing disk offerings in database (end) ********************************************************************* } - }); + }); + + // Setup networks + $.ajax({ + data: createURL("command=listNetworks"), + dataType: "json", + 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 == 'Virtualized') { + virtualNetwork = network[i]; + } + } + } + var $virtualNetworkElement = $("#vm_popup #network_virtual_container"); + + if (virtualNetwork == null) { + $virtualNetworkElement.data("isNetwork", false); + $.ajax({ + data: createURL("command=listNetworkOfferings"), + 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].type == "Virtualized" && networkOfferings[i].isdefault) { + $virtualNetworkElement.data("id", networkOfferings[i].id); + } + } + } + } + }); + } else { + $virtualNetworkElement.data("isNetwork", true).data("id", virtualNetwork.id); + //$virtualNetworkElement.find("#network_virtual_name").text(virtualNetwork.name); + //$virtualNetworkElement.find("#network_virtual_desc").text(virtualNetwork.displaytext); + } + } + }); $vmPopup.find("#wizard_service_offering").click(); return false; @@ -832,8 +874,27 @@ function initVMWizard() { $thisPopup.find("#wizard_review_disk_offering").text(diskOfferingName); } - if (currentStepInVmPopup == 4) { //network - + if (currentStepInVmPopup == 4) { //network + var $virtualNetworkElement = $("#vm_popup #network_virtual_container"); + var isVirtualNetwork = $virtualNetworkElement.data("isNetwork"); + + if (!isVirtualNetwork) { + // hardcoded text for now + var networkName = "Virtual Network"; + var networkDesc = "A dedicated virtualized network for your account. The broadcast domain is contrained within a VLAN and all public network access is routed out by a virtual router."; + var id = $virtualNetworkElement.data("id"); + // Create a network from this. + $.ajax({ + data: createURL("command=createNetwork&networkOfferingId="+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.data("id", network.id); + $thisPopup.find("#wizard_review_network").text(networkName); + } + }); + } } if (currentStepInVmPopup == 5) { //last step @@ -850,7 +911,8 @@ function initVMWizard() { moreCriteria.push("&zoneId="+$thisPopup.find("#wizard_zone").val()); moreCriteria.push("&hypervisor="+$selectedVmWizardTemplate.data("hypervisor")); moreCriteria.push("&templateId="+$selectedVmWizardTemplate.data("templateId")); - moreCriteria.push("&serviceOfferingId="+$thisPopup.find("input:radio[name=service_offering_radio]:checked").val()); + moreCriteria.push("&serviceOfferingId="+$thisPopup.find("input:radio[name=service_offering_radio]:checked").val()); + moreCriteria.push("$network="+$thisPopup.find("#network_virtual_container").data("id")); var diskOfferingId, $diskOfferingElement; if ($thisPopup.find("#wiz_blank").hasClass("rev_wizmid_selectedtempbut")) { //ISO