mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
CLOUDSTACK-766: Support assigning VLAN ID to network
On add network form, if selected network offering has specifyVlan=true, show VLAN text field.
This commit is contained in:
parent
24d6055177
commit
acc71fb735
@ -376,20 +376,41 @@
|
|||||||
var items = json.listvpcsresponse.vpc;
|
var items = json.listvpcsresponse.vpc;
|
||||||
var baseUrl = 'listNetworkOfferings&zoneid=' + args.zoneId;
|
var baseUrl = 'listNetworkOfferings&zoneid=' + args.zoneId;
|
||||||
var listUrl;
|
var listUrl;
|
||||||
|
var data = {
|
||||||
|
guestiptype: 'Isolated',
|
||||||
|
supportedServices: 'SourceNat',
|
||||||
|
state: 'Enabled',
|
||||||
|
};
|
||||||
|
|
||||||
if(items != null && items.length > 0)
|
if(items != null && items.length > 0)
|
||||||
listUrl = baseUrl;
|
listUrl = baseUrl;
|
||||||
else
|
else
|
||||||
listUrl = baseUrl + '&forVpc=false';
|
listUrl = baseUrl + '&forVpc=false';
|
||||||
|
|
||||||
|
if (args.context.vpc) {
|
||||||
|
data.forVpc = true;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL(listUrl),
|
url: createURL(listUrl),
|
||||||
data: {
|
data: data,
|
||||||
guestiptype: 'Isolated',
|
|
||||||
supportedServices: 'SourceNat',
|
|
||||||
specifyvlan: false,
|
|
||||||
state: 'Enabled'
|
|
||||||
},
|
|
||||||
success: function(json) {
|
success: function(json) {
|
||||||
networkOfferingObjs = json.listnetworkofferingsresponse.networkoffering;
|
networkOfferingObjs = json.listnetworkofferingsresponse.networkoffering;
|
||||||
|
args.$select.change(function() {
|
||||||
|
var $vlan = args.$select.closest('form').find('[rel=vlan]');
|
||||||
|
var networkOffering = $.grep(
|
||||||
|
networkOfferingObjs, function(netoffer) {
|
||||||
|
return netoffer.id == args.$select.val();
|
||||||
|
}
|
||||||
|
)[0];
|
||||||
|
|
||||||
|
if (networkOffering.specifyvlan) {
|
||||||
|
$vlan.css('display', 'inline-block');
|
||||||
|
} else {
|
||||||
|
$vlan.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
args.response.success({
|
args.response.success({
|
||||||
data: $.map(networkOfferingObjs, function(zone) {
|
data: $.map(networkOfferingObjs, function(zone) {
|
||||||
return {
|
return {
|
||||||
@ -405,26 +426,39 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
vlan: {
|
||||||
|
label: 'VLAN',
|
||||||
|
validation: { required: true },
|
||||||
|
isHidden: true
|
||||||
|
},
|
||||||
|
|
||||||
vpcid: {
|
vpcid: {
|
||||||
label: 'label.vpc',
|
label: 'label.vpc',
|
||||||
dependsOn: 'networkOfferingId',
|
dependsOn: 'networkOfferingId',
|
||||||
select: function(args) {
|
select: function(args) {
|
||||||
var networkOfferingObj;
|
var networkOfferingObj;
|
||||||
var $form = args.$select.closest('form');
|
var $form = args.$select.closest('form');
|
||||||
|
var data = {
|
||||||
|
listAll: true,
|
||||||
|
details: 'min'
|
||||||
|
};
|
||||||
|
|
||||||
|
if (args.context.vpc) {
|
||||||
|
data.id = args.context.vpc[0].id;
|
||||||
|
}
|
||||||
|
|
||||||
$(networkOfferingObjs).each(function(key, value) {
|
$(networkOfferingObjs).each(function(key, value) {
|
||||||
if(value.id == args.networkOfferingId) {
|
if(value.id == args.networkOfferingId) {
|
||||||
networkOfferingObj = value;
|
networkOfferingObj = value;
|
||||||
return false; //break each loop
|
return false; //break each loop
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if(networkOfferingObj.forvpc == true) {
|
if(networkOfferingObj.forvpc == true) {
|
||||||
args.$select.closest('.form-item').css('display', 'inline-block');
|
args.$select.closest('.form-item').css('display', 'inline-block');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL('listVPCs'),
|
url: createURL('listVPCs'),
|
||||||
data: {
|
data: data,
|
||||||
listAll: true,
|
|
||||||
details: 'min'
|
|
||||||
},
|
|
||||||
success: function(json) {
|
success: function(json) {
|
||||||
var items = json.listvpcsresponse.vpc;
|
var items = json.listvpcsresponse.vpc;
|
||||||
var data;
|
var data;
|
||||||
@ -477,12 +511,17 @@
|
|||||||
vpcid: args.data.vpcid
|
vpcid: args.data.vpcid
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args.$form.find('.form-item[rel=vlan]').css('display') != 'none') {
|
||||||
|
$.extend(dataObj, { vlan: args.data.vlan });
|
||||||
|
}
|
||||||
|
|
||||||
if(args.data.networkDomain != null && args.data.networkDomain.length > 0 && args.$form.find('.form-item[rel=vpcid]').css("display") == "none") {
|
if(args.data.networkDomain != null && args.data.networkDomain.length > 0 && args.$form.find('.form-item[rel=vpcid]').css("display") == "none") {
|
||||||
$.extend(dataObj, {
|
$.extend(dataObj, {
|
||||||
networkDomain: args.data.networkDomain
|
networkDomain: args.data.networkDomain
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: createURL('createNetwork'),
|
url: createURL('createNetwork'),
|
||||||
data: dataObj,
|
data: dataObj,
|
||||||
|
|||||||
@ -3047,11 +3047,24 @@
|
|||||||
zoneid: args.zoneId,
|
zoneid: args.zoneId,
|
||||||
guestiptype: 'Isolated',
|
guestiptype: 'Isolated',
|
||||||
supportedServices: 'SourceNat',
|
supportedServices: 'SourceNat',
|
||||||
specifyvlan: false,
|
|
||||||
state: 'Enabled'
|
state: 'Enabled'
|
||||||
},
|
},
|
||||||
success: function(json) {
|
success: function(json) {
|
||||||
var networkOfferings = json.listnetworkofferingsresponse.networkoffering;
|
var networkOfferings = json.listnetworkofferingsresponse.networkoffering;
|
||||||
|
args.$select.change(function() {
|
||||||
|
var $vlan = args.$select.closest('form').find('[rel=vlan]');
|
||||||
|
var networkOffering = $.grep(
|
||||||
|
networkOfferings, function(netoffer) {
|
||||||
|
return netoffer.id == args.$select.val();
|
||||||
|
}
|
||||||
|
)[0];
|
||||||
|
|
||||||
|
if (networkOffering.specifyvlan) {
|
||||||
|
$vlan.css('display', 'inline-block');
|
||||||
|
} else {
|
||||||
|
$vlan.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//only one network(tier) is allowed to have PublicLb (i.e. provider is PublicLb provider like "VpcVirtualRouter", "Netscaler") in a VPC
|
//only one network(tier) is allowed to have PublicLb (i.e. provider is PublicLb provider like "VpcVirtualRouter", "Netscaler") in a VPC
|
||||||
var items;
|
var items;
|
||||||
@ -3086,6 +3099,11 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
vlan: {
|
||||||
|
label: 'VLAN',
|
||||||
|
validation: { required: true },
|
||||||
|
isHidden: true
|
||||||
|
},
|
||||||
gateway: {
|
gateway: {
|
||||||
label: 'label.gateway',
|
label: 'label.gateway',
|
||||||
docID: 'helpTierGateway',
|
docID: 'helpTierGateway',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user