add shared network in network.js
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a1ae8d95 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a1ae8d95 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a1ae8d95 Branch: refs/heads/advancedsg-leaseweb Commit: a1ae8d95e78289450e579f26ddadff35855c49f7 Parents: d856282 Author: Wei Zhou <[email protected]> Authored: Tue Jun 11 16:12:05 2013 +0200 Committer: Wei Zhou <[email protected]> Committed: Tue Jun 11 16:12:05 2013 +0200 ---------------------------------------------------------------------- ui/scripts/network.js | 60 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a1ae8d95/ui/scripts/network.js ---------------------------------------------------------------------- diff --git a/ui/scripts/network.js b/ui/scripts/network.js index d1efe8a..bd5f3ba 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -315,7 +315,8 @@ async: false, success: function(json) { advSgDisabledZones = $.grep(json.listzonesresponse.zone, function(zone) { - return (zone.networktype == 'Advanced' && zone.securitygroupsenabled != true); //Isolated networks can only be created in Advanced SG-disabled zone (but not in Basic zone nor Advanced SG-enabled zone) + //Guest networks can only be created in Advanced zone with/without Security groups (but not in Basic zone) + return (zone.networktype == 'Advanced'); }); } }); @@ -338,7 +339,7 @@ url: createURL('listZones'), success: function(json) { var zones = $.grep(json.listzonesresponse.zone, function(zone) { - return (zone.networktype == 'Advanced' && zone.securitygroupsenabled != true); //Isolated networks can only be created in Advanced SG-disabled zone (but not in Basic zone nor Advanced SG-enabled zone) + return (zone.networktype == 'Advanced'); //Guest networks can only be created in Advanced zone with/without Security groups (but not in Basic zone) }); args.response.success({ @@ -372,6 +373,42 @@ listUrl = baseUrl; else listUrl = baseUrl + '&forVpc=false'; + var isAdvancedSGZone = false; + $.ajax({ + url: createURL("listZones&id=" + args.zoneId), + dataType: "json", + async: false, + success: function(json){ + isAdvancedSGZone = json.listzonesresponse.zone[0].securitygroupsenabled; + } + }); + if (isAdvancedSGZone) { + var $form = args.$select.closest('form'); + $form.find('.form-item[rel=guestVlan]').show(); + $.ajax({ + url: createURL(listUrl), + data: { + guestiptype: 'Shared', + supportedServices: 'SecurityGroup', + specifyvlan: true, + state: 'Enabled' + }, + success: function(json) { + networkOfferingObjs = json.listnetworkofferingsresponse.networkoffering; + args.response.success({ + data: $.map(networkOfferingObjs, function(zone) { + return { + id: zone.id, + description: zone.name + }; + }) + }); + } + }); + } + else { + var $form = args.$select.closest('form'); + $form.find('.form-item[rel=guestVlan]').hide(); $.ajax({ url: createURL(listUrl), data: { @@ -393,6 +430,7 @@ } }); } + } }); } }, @@ -443,6 +481,9 @@ guestGateway: { label: 'label.guest.gateway', docID: 'helpGuestNetworkGateway' }, guestNetmask: { label: 'label.guest.netmask', docID: 'helpGuestNetworkNetmask' }, + guestStartIp: { label: 'label.start.IP' }, + guestEndIp: { label: 'label.end.IP' }, + guestVlan: { label: 'label.specify.vlan' }, networkDomain: { label: 'label.network.domain' } } }, @@ -464,6 +505,21 @@ netmask: args.data.guestNetmask }); } + if(args.data.guestStartIp != null && args.data.guestStartIp.length > 0) { + $.extend(dataObj, { + startIp: args.data.guestStartIp + }); + } + if(args.data.guestEndIp != null && args.data.guestEndIp.length > 0) { + $.extend(dataObj, { + endIp: args.data.guestEndIp + }); + } + if(args.data.guestVlan != null && args.data.guestVlan.length > 0) { + $.extend(dataObj, { + vlan: args.data.guestVlan + }); + } if(args.$form.find('.form-item[rel=vpcid]').css("display") != "none") { $.extend(dataObj, { vpcid: args.data.vpcid
