From ca8580717cbba227c085a8815f4859674db1710e Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Mon, 26 Aug 2013 14:24:22 -0700 Subject: [PATCH] CLOUDSTACK-4089: UI > zone wizard > hypervisor VMware > configure physical network > edit traffic type label > split "VMware Traffic Label" field into 3 fields: "vSwitch Name", "VLAN ID", "vSwitch Type". --- ui/scripts/ui-custom/zoneWizard.js | 57 +++++++++++++++++++++++++----- ui/scripts/zoneWizard.js | 29 ++++++++++++++- 2 files changed, 76 insertions(+), 10 deletions(-) diff --git a/ui/scripts/ui-custom/zoneWizard.js b/ui/scripts/ui-custom/zoneWizard.js index 8af873e43ea..b8f77a479d1 100644 --- a/ui/scripts/ui-custom/zoneWizard.js +++ b/ui/scripts/ui-custom/zoneWizard.js @@ -190,8 +190,7 @@ var $configuredTrafficTypes = $trafficTypes.filter(function() { var $trafficType = $(this); - return $trafficType.data('traffic-type-data') && - $trafficType.data('traffic-type-data').label.length >= 1; + return ($trafficType.data('traffic-type-data') != null); }); if ($enabledPhysicalNetworks.size() > 1 && @@ -295,20 +294,60 @@ var trafficData = $trafficType.data('traffic-type-data') ? $trafficType.data('traffic-type-data') : {}; var hypervisor = getData($trafficType.closest('.zone-wizard')).zone.hypervisor; + + var fields; + + if (hypervisor == 'VMware') { + fields = { + vSwitchName: { + label: 'vSwitch Name' , + defaultValue: trafficData.vSwitchName + }, + vlanId: { + label: 'VLAN ID', + defaultValue: trafficData.vlanId + } + }; + + if($trafficType.hasClass('guest') || $trafficType.hasClass('public')) { + $.extend(fields, { + vSwitchType: { + label: 'vSwitch Type', + select: function (args) { + args.response.success({ + data: [{ + id: 'nexusdvs', + description: 'Cisco Nexus 1000v Distributed Virtual Switch' + }, { + id: 'vmwaresvs', + description: 'VMware vNetwork Standard Virtual Switch' + }, { + id: 'vmwaredvs', + description: 'VMware vNetwork Distributed Virtual Switch' + }], + defaultValue: trafficData.vSwitchType + }); + } + } + }); + } + } else { + fields = { + label: { + label: hypervisor + ' ' + _l('label.traffic.label'), + defaultValue: trafficData.label + } + }; + } cloudStack.dialog.createForm({ form: { title: _l('label.edit.traffic.type'), desc: _l('message.edit.traffic.type'), - fields: { - label: { - label: hypervisor + ' ' + _l('label.traffic.label'), - defaultValue: trafficData.label - } - } + fields: fields }, - after: function(args) { + after: function(args) { $trafficType.data('traffic-type-data', args.data); } }); diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js index 02a68db0b4f..58119092db0 100755 --- a/ui/scripts/zoneWizard.js +++ b/ui/scripts/zoneWizard.js @@ -34,7 +34,34 @@ physicalNetworkID = zoneType == 'Advanced' ? physicalNetworkID : 0; var physicalNetwork = data.physicalNetworks ? data.physicalNetworks[physicalNetworkID] : null; var trafficConfig = physicalNetwork ? physicalNetwork.trafficTypeConfiguration[trafficTypeID] : null; - var trafficLabel = trafficConfig ? trafficConfig.label : null; + + var trafficLabel; + if (trafficConfig != null) { + if ('label' in trafficConfig) { + trafficLabel = trafficConfig.label; + } + else { + trafficLabel = ''; + + if ('vSwitchName' in trafficConfig) { + trafficLabel += trafficConfig.vSwitchName; + } + if ('vlanId' in trafficConfig) { + if (trafficLabel.length > 0) + trafficLabel += ','; + trafficLabel += trafficConfig.vlanId; + } + if ('vSwitchType' in trafficConfig) { + if (trafficLabel.length > 0) + trafficLabel += ','; + trafficLabel += trafficConfig.vSwitchType; + } + + if (trafficLabel.length == 0) //trafficLabel == '' + trafficLabel = null; + } + } + var hypervisorAttr, trafficLabelStr; switch (hypervisor) {