CLOUDSTACK-6190: UI > VM Wizard > select network step > support specifying IP Address for every network. Change to use ipToNetworkList parameter instead of networkIds parameter of deployVM API.

This commit is contained in:
Jessica Wang 2014-02-28 14:58:18 -08:00
parent d9a4e038a0
commit d5dc6aab61

View File

@ -665,6 +665,7 @@
//step 6: select network //step 6: select network
if (step6ContainerType == 'select-network' || step6ContainerType == 'select-advanced-sg') { if (step6ContainerType == 'select-network' || step6ContainerType == 'select-advanced-sg') {
var array2 = []; var array2 = [];
var array3 = [];
var defaultNetworkId = args.data.defaultNetwork; //args.data.defaultNetwork might be equal to string "new-network" or a network ID var defaultNetworkId = args.data.defaultNetwork; //args.data.defaultNetwork might be equal to string "new-network" or a network ID
var checkedNetworkIdArray; var checkedNetworkIdArray;
@ -710,22 +711,61 @@
} }
//create new network ends here //create new network ends here
//add default network first
if (defaultNetworkId != null && defaultNetworkId.length > 0) { if (defaultNetworkId == null) {
array2.push(defaultNetworkId); cloudStack.dialog.notice({
message: "Please select a default network in Network step."
});
return;
} }
//then, add other checked networks
if (checkedNetworkIdArray.length > 0) { if (checkedNetworkIdArray.length > 0) {
for (var i = 0; i < checkedNetworkIdArray.length; i++) { for (var i = 0; i < checkedNetworkIdArray.length; i++) {
if (checkedNetworkIdArray[i] != defaultNetworkId) //exclude defaultNetworkId that has been added to array2 if (checkedNetworkIdArray[i] == defaultNetworkId) {
array2.unshift(defaultNetworkId);
var ipToNetwork = {
networkid: defaultNetworkId
};
if (args.data["new-network"] == "create-new-network") {
if (args.data['new-network-ip'] != null && args.data['new-network-ip'].length > 0) {
$.extend(ipToNetwork, {
ip: args.data['new-network-ip']
});
}
} else {
if (args.data["my-network-ips"][i] != null && args.data["my-network-ips"][i].length > 0) {
$.extend(ipToNetwork, {
ip: args.data["my-network-ips"][i]
});
}
}
array3.unshift(ipToNetwork);
} else {
array2.push(checkedNetworkIdArray[i]); array2.push(checkedNetworkIdArray[i]);
var ipToNetwork = {
networkid: checkedNetworkIdArray[i]
};
if (args.data["my-network-ips"][i] != null && args.data["my-network-ips"][i].length > 0) {
$.extend(ipToNetwork, {
ip: args.data["my-network-ips"][i]
});
}
array3.push(ipToNetwork);
}
} }
} }
$.extend(deployVmData, { //deployVmData.push("&networkIds=" + array2.join(",")); //ipToNetworkMap can't be specified along with networkIds or ipAddress
networkids : array2.join(",")
}); for (var k = 0; k < array3.length; k++) {
deployVmData["iptonetworklist[" + k + "].networkid"] = array3[k].networkid;
if (array3[k].ip != undefined && array3[k].ip.length > 0) {
deployVmData["iptonetworklist[" + k + "].ip"] = array3[k].ip;
}
}
} else if (step6ContainerType == 'select-security-group') { } else if (step6ContainerType == 'select-security-group') {
var checkedSecurityGroupIdArray; var checkedSecurityGroupIdArray;