diff --git a/ui/scripts/network.js b/ui/scripts/network.js index fb63e4b4f19..ddde9c967e5 100755 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -4532,78 +4532,67 @@ docID: 'helpVPCDomain', label: 'label.DNS.domain.for.guest.networks' }, - - loadbalancer:{ //Support for Netscaler as an external device for load balancing - label:'Load Balancer', + publicLoadBalancerProvider:{ + label:'Public Load Balancer Provider', select:function(args){ - $.ajax({ - url:createURL('listVPCOfferings&listall=true'), - dataType:'json', - success:function(json){ - var items=[]; - var vpcObj = json.listvpcofferingsresponse.vpcoffering; - $(vpcObj).each(function(){ - items.push({id:this.id , description:this.name}); - }); - args.response.success({data:items}); - - } - - }); - - } - - } - + var items = []; + items.push({id: 'VpcVirtualRouter', description: 'VpcVirtualRouter'}); + items.push({id: 'Netscaler', description: 'Netscaler'}); + args.response.success({data: items}); + } + } } }, - action: function(args) { - /* var defaultvpcofferingid; - $.ajax({ - url: createURL("listVPCOfferings"), - dataType: "json", - data: { - isdefault: true - }, - async: false, - success: function(json) { - defaultvpcofferingid = json.listvpcofferingsresponse.vpcoffering[0].id; - } - });*/ - - var dataObj = { - name: args.data.name, - displaytext: args.data.displaytext, - zoneid: args.data.zoneid, - cidr: args.data.cidr, - vpcofferingid: args.data.loadbalancer // Support for external load balancer - }; - - if(args.data.networkdomain != null && args.data.networkdomain.length > 0) - $.extend(dataObj, { networkdomain: args.data.networkdomain }); - - $.ajax({ - url: createURL("createVPC"), - dataType: "json", - data: dataObj, - async: true, - success: function(json) { - var jid = json.createvpcresponse.jobid; - args.response.success( - {_custom: - {jobId: jid, - getUpdatedItem: function(json) { - return json.queryasyncjobresultresponse.jobresult.vpc; - } + action: function(args) { + var vpcOfferingName; + if (args.data.publicLoadBalancerProvider == 'VpcVirtualRouter') + vpcOfferingName = 'Default VPC offering'; + else if (args.data.publicLoadBalancerProvider == 'Netscaler') + vpcOfferingName = 'Default VPC offering with Netscaler'; + + $.ajax({ + url:createURL('listVPCOfferings'), + data: { + name: vpcOfferingName + }, + success:function(json){ + var vpcofferingid = json.listvpcofferingsresponse.vpcoffering[0].id; + + var dataObj = { + name: args.data.name, + displaytext: args.data.displaytext, + zoneid: args.data.zoneid, + cidr: args.data.cidr, + vpcofferingid: vpcofferingid + }; + + if(args.data.networkdomain != null && args.data.networkdomain.length > 0) + $.extend(dataObj, { networkdomain: args.data.networkdomain }); + + $.ajax({ + url: createURL("createVPC"), + dataType: "json", + data: dataObj, + async: true, + success: function(json) { + var jid = json.createvpcresponse.jobid; + args.response.success( + {_custom: + {jobId: jid, + getUpdatedItem: function(json) { + return json.queryasyncjobresultresponse.jobresult.vpc; + } + } + }); + }, + error: function(data) { + args.response.error(parseXMLHttpResponse(data)); } - }); - }, - error: function(data) { - args.response.error(parseXMLHttpResponse(data)); - } - }); - }, - + }); + } + }); + + }, notification: { poll: pollAsyncJobResult }