Repository: cloudstack
Updated Branches:
  refs/heads/master d9a4e038a -> d5dc6aab6


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.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d5dc6aab
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d5dc6aab
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d5dc6aab

Branch: refs/heads/master
Commit: d5dc6aab614a345da48b97453650461b8672c0d1
Parents: d9a4e03
Author: Jessica Wang <[email protected]>
Authored: Fri Feb 28 14:58:18 2014 -0800
Committer: Jessica Wang <[email protected]>
Committed: Fri Feb 28 14:58:18 2014 -0800

----------------------------------------------------------------------
 ui/scripts/instanceWizard.js | 60 ++++++++++++++++++++++++++++++++-------
 1 file changed, 50 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d5dc6aab/ui/scripts/instanceWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instanceWizard.js b/ui/scripts/instanceWizard.js
index 4a740c6..e9296a9 100644
--- a/ui/scripts/instanceWizard.js
+++ b/ui/scripts/instanceWizard.js
@@ -665,6 +665,7 @@
             //step 6: select network
             if (step6ContainerType == 'select-network' || step6ContainerType 
== 'select-advanced-sg') {
                 var array2 = [];
+                var array3 = [];                
                 var defaultNetworkId = args.data.defaultNetwork; 
//args.data.defaultNetwork might be equal to string "new-network" or a network 
ID
 
                 var checkedNetworkIdArray;
@@ -710,23 +711,62 @@
                 }
                 //create new network ends here
 
-                //add default network first
-                if (defaultNetworkId != null && defaultNetworkId.length > 0) {
-                    array2.push(defaultNetworkId);
-                }
 
-                //then, add other checked networks
+                if (defaultNetworkId == null) {
+                       cloudStack.dialog.notice({
+                        message: "Please select a default network in Network 
step."
+                    });    
+                       return;
+                }    
+                  
                 if (checkedNetworkIdArray.length > 0) {
                     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]);
+                            
+                            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, {
-                       networkids : array2.join(",")
-                });                
-                
+                //deployVmData.push("&networkIds=" + array2.join(","));  
//ipToNetworkMap can't be specified along with networkIds or ipAddress
+                                            
+                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') {
                 var checkedSecurityGroupIdArray;
                 if (typeof(args.data["security-groups"]) == "object" && 
args.data["security-groups"].length != null) { //args.data["security-groups"] 
is an array of string, e.g. ["2375f8cc-8a73-4b8d-9b26-50885a25ffe0", 
"27c60d2a-de7f-4bb7-96e5-a602cec681df","c6301d77-99b5-4e8a-85e2-3ea2ab31c342"],

Reply via email to