CLOUDSTACK-869: Add VPC dialog - add Public LB Provider dropdown, remove VPC Offering dropdown. When Public LB Provider is selected as Netscaler, pass "Default VPC offering with Netscaler" to createVPC API. When Public LB Provider is selected as VpcVirtualRouter, pass "Default VPC Offering" to createVPC API.

This commit is contained in:
Jessica Wang 2013-06-17 10:55:50 -07:00
parent 952fa2464d
commit a2c7d3a8a7
1 changed files with 57 additions and 68 deletions

View File

@ -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
}