You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by GitBox <gi...@apache.org> on 2018/04/16 11:44:29 UTC

[GitHub] DaanHoogland closed pull request #2572: Remove 'todb' in favor of 'encodeURIComponent'.

DaanHoogland closed pull request #2572: Remove 'todb' in favor of 'encodeURIComponent'.
URL: https://github.com/apache/cloudstack/pull/2572
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/ui/scripts/accountsWizard.js b/ui/scripts/accountsWizard.js
index 78d4dd50e62..5b8e9a62d54 100644
--- a/ui/scripts/accountsWizard.js
+++ b/ui/scripts/accountsWizard.js
@@ -209,9 +209,7 @@
                 array1.push("&firstname=" + args.data.firstname);
                 array1.push("&lastname=" + args.data.lastname);
 
-                var password = args.data.password;
-                password = todb(password);
-                array1.push("&password=" + password);
+                cloudStack.addPasswordToCommandUrlParameterArray(array1, args.data.password);
             }
 
             array1.push("&domainid=" + args.data.domainid);
diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js
index f2173e1a965..ccc0267a7ef 100644
--- a/ui/scripts/cloudStack.js
+++ b/ui/scripts/cloudStack.js
@@ -223,9 +223,7 @@
                 var array1 = [];
                 array1.push("&username=" + encodeURIComponent(args.data.username));
 
-                var password = todb(args.data.password);
-                array1.push("&password=" + password);
-
+                cloudStack.addPasswordToCommandUrlParameterArray(array1, args.data.password);
                 var domain;
                 if (args.data.domain != null && args.data.domain.length > 0) {
                     if (args.data.domain.charAt(0) != "/")
diff --git a/ui/scripts/globalSettings.js b/ui/scripts/globalSettings.js
index eba8e687b5b..ab03978c22a 100644
--- a/ui/scripts/globalSettings.js
+++ b/ui/scripts/globalSettings.js
@@ -214,8 +214,8 @@
                             },
                             action: function(args) {
                                 var array = [];
-                                array.push("&hostname=" + todb(args.data.hostname));
-                                array.push("&port=" + todb(args.data.port));;
+                                array.push("&hostname=" + encodeURIComponent(args.data.hostname));
+                                array.push("&port=" + encodeURIComponent(args.data.port));
                                 $.ajax({
                                     url: createURL("addLdapConfiguration" + array.join("")),
                                     dataType: "json",
diff --git a/ui/scripts/instanceWizard.js b/ui/scripts/instanceWizard.js
index 680c6ae44a7..116b994a11c 100644
--- a/ui/scripts/instanceWizard.js
+++ b/ui/scripts/instanceWizard.js
@@ -1091,7 +1091,7 @@
             var userdata = args.data.userdata;
             if (userdata != null && userdata.length > 0) {
                 $.extend(deployVmData, {
-                    userdata : todb(btoa(userdata))
+                    userdata : encodeURIComponent(btoa(userdata))
                 });
             }
 
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index 84d60033045..0948db48d07 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -228,14 +228,7 @@
                     var array1 = [];
                     array1.push("&snapshotmemory=" + (args.data.snapshotMemory == "on"));
                     array1.push("&quiescevm=" + (args.data.quiescevm == "on"));
-                    var displayname = args.data.name;
-                    if (displayname != null && displayname.length > 0) {
-                        array1.push("&name=" + todb(displayname));
-                    }
-                    var description = args.data.description;
-                    if (description != null && description.length > 0) {
-                        array1.push("&description=" + todb(description));
-                    }
+                    cloudStack.addNameAndDescriptionToCommandUrlParameterArray(array1, args.data);
                     $.ajax({
                         url: createURL("createVMSnapshot&virtualmachineid=" + instance.id + array1.join("")),
                         dataType: "json",
diff --git a/ui/scripts/sharedFunctions.js b/ui/scripts/sharedFunctions.js
index a2dc4eb21e6..6fd2c1ed766 100644
--- a/ui/scripts/sharedFunctions.js
+++ b/ui/scripts/sharedFunctions.js
@@ -180,11 +180,8 @@ var pollAsyncJobResult = function(args) {
         return urlString;
     }
 
-    function todb(val) {
-        return encodeURIComponent(val);
-    }
 
-    //LB provider map
+//LB provider map
 var lbProviderMap = {
     "publicLb": {
         "non-vpc": ["VirtualRouter", "Netscaler", "F5"],
@@ -735,16 +732,16 @@ var addGuestNetworkDialog = {
 
             if (selectedNetworkOfferingObj.guestiptype == "Shared")
                 array1.push("&physicalnetworkid=" + args.data.physicalNetworkId);
+            
+            cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array1, "name", args.data.name);
+            cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array1, "displayText", args.data.description);
 
-            array1.push("&name=" + todb(args.data.name));
-            array1.push("&displayText=" + todb(args.data.description));
-
-            if (($form.find('.form-item[rel=vlanId]').css("display") != "none") && (args.data.vlanId != null && args.data.vlanId.length > 0))
-                array1.push("&vlan=" + todb(args.data.vlanId));
-
-            if (($form.find('.form-item[rel=isolatedpvlanId]').css("display") != "none") && (args.data.isolatedpvlanId != null && args.data.isolatedpvlanId.length > 0))
-                array1.push("&isolatedpvlan=" + todb(args.data.isolatedpvlanId));
-
+            if ($form.find('.form-item[rel=vlanId]').css("display") != "none"){
+                cloudStack.addVlanToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.vlanId)
+            }
+            if (($form.find('.form-item[rel=isolatedpvlanId]').css("display") != "none") && (args.data.isolatedpvlanId != null && args.data.isolatedpvlanId.length > 0)){
+                array1.push("&isolatedpvlan=" + encodeURIComponent(args.data.isolatedpvlanId));
+            }
             if ($form.find('.form-item[rel=domainId]').css("display") != "none") {
                 array1.push("&domainId=" + args.data.domainId);
 
@@ -788,9 +785,9 @@ var addGuestNetworkDialog = {
                 array1.push("&endipv6=" + args.data.endipv6);
             //IPv6 (end)
 
-            if (args.data.networkdomain != null && args.data.networkdomain.length > 0)
-                array1.push("&networkdomain=" + todb(args.data.networkdomain));
-
+            if (args.data.networkdomain != null && args.data.networkdomain.length > 0){
+                array1.push("&networkdomain=" + encodeURIComponent(args.data.networkdomain));
+            }
             $.ajax({
                 url: createURL("createNetwork" + array1.join("")),
                 dataType: "json",
@@ -2800,4 +2797,57 @@ cloudStack.createTemplateMethod = function (isSnapshot){
             poll: pollAsyncJobResult
         }
     };
-};
\ No newline at end of file
+};
+
+cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty = function(array, parameterName, value){
+    if (value != null && value.length > 0) {
+        array.push("&" + parameterName + "=" + encodeURIComponent(value));
+    }
+}
+
+cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty = function(array, username, password){
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "username", username);
+    cloudStack.addPasswordToCommandUrlParameterArray(array, password);
+};
+
+cloudStack.addPasswordToCommandUrlParameterArray = function(array, password){
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "password", password);
+};
+
+/**
+ * We will only add the name and description data to the array of parameters if they are not null.
+ * Moreover, we expect the name parameter to be a property ('name') of data object. 
+ * The description must be a property called 'description' in the data object.   
+ */
+cloudStack.addNameAndDescriptionToCommandUrlParameterArray = function (array, data){
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "name", data.name);
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "description", data.description);
+};
+
+cloudStack.addNewSizeToCommandUrlParameterArrayIfItIsNotNullAndHigherThanZero = function(array, newSize){
+    if(newSize == undefined || newSize == null){
+        return;
+    }
+    var newSizeAsNumber = new Number(newSize);
+    if(isNaN(newSizeAsNumber)){
+        return;
+    }
+    if (newSizeAsNumber > 0) {
+        array.push("&size=" + encodeURIComponent(newSize));
+    }
+};
+
+cloudStack.addVlanToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty = function(array, vlan){
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "vlan", vlan);
+};
+
+cloudStack.createArrayOfParametersForCreatePodCommand = function (zoneId, data){
+    var array =[];
+    array.push("&zoneId=" + zoneId);
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "name", data.podName);
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "gateway", data.podGateway);
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "netmask", data.podNetmask);
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "startIp", data.podStartIp);
+    cloudStack.addParameterToCommandUrlParameterArrayIfValueIsNotEmpty(array, "endIp", data.podEndIp);
+    return array;
+}
diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js
index 47c4dfc46b1..89b0d69cb46 100644
--- a/ui/scripts/storage.js
+++ b/ui/scripts/storage.js
@@ -1528,45 +1528,31 @@
                                 },
                                 action: function(args) {
                                     var array1 = [];
-                                    var newSize;
-                                    if (selectedDiskOfferingObj == null || selectedDiskOfferingObj.iscustomized == true) {
-                                        newSize = args.data.newsize;
-                                        if (newSize != null && newSize.length > 0) {
-                                            array1.push("&size=" + todb(newSize));
-                                        }
-                                    } else {
-
-                                        if(args.$form.find('.form-item[rel=shrinkok]').css("display") != "none") {
-                                            array1.push("&shrinkok=" + (args.data.shrinkok == "on"));
-                                        }
-
-                                        var newDiskOffering = args.data.newdiskoffering;
-
-                                        if (selectedDiskOfferingObj.iscustomized == true) {
-                                            newSize = args.data.newsize;
-                                        }
-                                        if (newDiskOffering != null && newDiskOffering.length > 0) {
-                                            array1.push("&diskofferingid=" + todb(newDiskOffering));
-                                        }
-                                        if (newSize != null && newSize.length > 0) {
-                                            array1.push("&size=" + todb(newSize));
-                                        }
+                                    if(args.$form.find('.form-item[rel=shrinkok]').css("display") != "none") {
+                                        array1.push("&shrinkok=" + (args.data.shrinkok == "on"));
+                                    }
 
-                                        var minIops;
-                                        var maxIops
+                                    var newDiskOffering = args.data.newdiskoffering;
+                                    if (newDiskOffering != null && newDiskOffering.length > 0) {
+                                        array1.push("&diskofferingid=" + encodeURIComponent(newDiskOffering));
+                                    }
+                                    if (selectedDiskOfferingObj.iscustomized == true) {
+                                        cloudStack.addNewSizeToCommandUrlParameterArrayIfItIsNotNullAndHigherThanZero(array1, args.data.newsize);
+                                    }
 
-                                        if (selectedDiskOfferingObj.iscustomizediops == true) {
-                                            minIops = args.data.minIops;
-                                            maxIops = args.data.maxIops;
-                                        }
+                                    var minIops;
+                                    var maxIops
+                                    if (selectedDiskOfferingObj.iscustomizediops == true) {
+                                        minIops = args.data.minIops;
+                                        maxIops = args.data.maxIops;
+                                    }
 
-                                        if (minIops != null && minIops.length > 0) {
-                                            array1.push("&miniops=" + todb(minIops));
-                                        }
+                                    if (minIops != null && minIops.length > 0) {
+                                        array1.push("&miniops=" + encodeURIComponent(minIops));
+                                    }
 
-                                        if (maxIops != null && maxIops.length > 0) {
-                                            array1.push("&maxiops=" + todb(maxIops));
-                                        }
+                                    if (maxIops != null && maxIops.length > 0) {
+                                        array1.push("&maxiops=" + encodeURIComponent(maxIops));
                                     }
                                     //if original disk size  > new disk size
                                     if ((args.context.volumes[0].type == "ROOT")
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 07520df1d46..582e394baca 100755
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -477,10 +477,12 @@
                                                 var array1 =[];
                                                 array1.push("&zoneId=" + args.context.zones[0].id);
 
-                                                if (args.data.vlan != null && args.data.vlan.length > 0)
-                                                array1.push("&vlan=" + todb(args.data.vlan)); else
-                                                array1.push("&vlan=untagged");
-
+                                                var vlan = "untagged";
+                                                if (args.data.vlan != null && args.data.vlan.length > 0){
+                                                    vlan = args.data.vlan;
+                                                }
+                                                cloudStack.addVlanToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, vlan);
+                                                
                                                 array1.push("&gateway=" + args.data.gateway);
                                                 array1.push("&netmask=" + args.data.netmask);
                                                 array1.push("&startip=" + args.data.startip);
@@ -814,11 +816,9 @@
                                                 var array1 =[];
                                                 array1.push("&zoneId=" + args.context.zones[0].id);
                                                 array1.push("&podid=" + args.data.podid);
-
                                                 array1.push("&gateway=" + args.data.gateway);
 
-                                                if (args.data.vlan != null && args.data.vlan.length > 0)
-                                                array1.push("&vlan=" + todb(args.data.vlan));
+                                                cloudStack.addVlanToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.vlan);
 
                                                 array1.push("&netmask=" + args.data.netmask);
                                                 array1.push("&startip=" + args.data.startip);
@@ -1046,9 +1046,7 @@
                                                 if (args.data.systemvms) {
                                                     array1.push("&forsystemvms=" + (args.data.systemvms == "on" ? "true" : "false"));
                                                 }
-
-                                                if (args.data.vlan != null && args.data.vlan.length > 0)
-                                                    array1.push("&vlan=" + todb(args.data.vlan));
+                                                cloudStack.addVlanToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.vlan);
 
                                                 $.ajax({
                                                     url: createURL("createManagementNetworkIpRange" + array1.join("")),
@@ -1557,16 +1555,16 @@
                                                 label: 'label.edit',
                                                 action: function (args) {
                                                     var array1 =[];
-                                                    array1.push("&name=" + todb(args.data.name));
-                                                    array1.push("&displaytext=" + todb(args.data.displaytext));
+                                                    array1.push("&name=" + encodeURIComponent(args.data.name));
+                                                    array1.push("&displaytext=" + encodeURIComponent(args.data.displaytext));
 
                                                     //args.data.networkdomain is null when networkdomain field is hidden
                                                     if (args.data.networkdomain != null && args.data.networkdomain != selectedGuestNetworkObj.networkdomain)
-                                                    array1.push("&networkdomain=" + todb(args.data.networkdomain));
+                                                    array1.push("&networkdomain=" + encodeURIComponent(args.data.networkdomain));
 
                                                     //args.data.networkofferingid is null when networkofferingid field is hidden
                                                     if (args.data.networkofferingid != null && args.data.networkofferingid != args.context.networks[0].networkofferingid) {
-                                                        array1.push("&networkofferingid=" + todb(args.data.networkofferingid));
+                                                        array1.push("&networkofferingid=" + encodeURIComponent(args.data.networkofferingid));
 
                                                         if (args.context.networks[0].type == "Isolated") {
                                                             //Isolated network
@@ -8097,7 +8095,7 @@
                                             //EXPLICIT DEDICATION
                                             var array2 =[];
                                             if (args.data.accountId != "")
-                                            array2.push("&account=" + todb(args.data.accountId));
+                                            array2.push("&account=" + encodeURIComponent(args.data.accountId));
 
                                             $.ajax({
                                                 url: createURL("dedicateZone&zoneId=" +
@@ -8194,23 +8192,23 @@
                                         label: 'label.edit',
                                         action: function (args) {
                                             var array1 =[];
-                                            array1.push("&name=" + todb(args.data.name));
-                                            array1.push("&dns1=" + todb(args.data.dns1));
-                                            array1.push("&dns2=" + todb(args.data.dns2));
+                                            array1.push("&name=" + encodeURIComponent(args.data.name));
+                                            array1.push("&dns1=" + encodeURIComponent(args.data.dns1));
+                                            array1.push("&dns2=" + encodeURIComponent(args.data.dns2));
                                             //dns2 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
-                                            array1.push("&ip6dns1=" + todb(args.data.ip6dns1));
+                                            array1.push("&ip6dns1=" + encodeURIComponent(args.data.ip6dns1));
                                             //p6dns1 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
-                                            array1.push("&ip6dns2=" + todb(args.data.ip6dns2));
+                                            array1.push("&ip6dns2=" + encodeURIComponent(args.data.ip6dns2));
                                             //ip6dns2 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
 
                                             if (selectedZoneObj.networktype == "Advanced" && args.data.guestcidraddress) {
-                                                array1.push("&guestcidraddress=" + todb(args.data.guestcidraddress));
+                                                array1.push("&guestcidraddress=" + encodeURIComponent(args.data.guestcidraddress));
                                             }
 
-                                            array1.push("&internaldns1=" + todb(args.data.internaldns1));
-                                            array1.push("&internaldns2=" + todb(args.data.internaldns2));
+                                            array1.push("&internaldns1=" + encodeURIComponent(args.data.internaldns1));
+                                            array1.push("&internaldns2=" + encodeURIComponent(args.data.internaldns2));
                                             //internaldns2 can be empty ("") when passed to API, so a user gets to update this field from an existing value to blank.
-                                            array1.push("&domain=" + todb(args.data.domain));
+                                            array1.push("&domain=" + encodeURIComponent(args.data.domain));
                                             array1.push("&localstorageenabled=" + (args.data.localstorageenabled == 'on'));
                                             $.ajax({
                                                 url: createURL("updateZone&id=" + args.context.physicalResources[0].id + array1.join("")),
@@ -13659,14 +13657,14 @@
                                 };
 
                                 array1.push("&zoneId=" + args.data.zoneid);
-                                array1.push("&name=" + todb(args.data.podname));
-                                array1.push("&gateway=" + todb(args.data.reservedSystemGateway));
-                                array1.push("&netmask=" + todb(args.data.reservedSystemNetmask));
-                                array1.push("&startIp=" + todb(args.data.reservedSystemStartIp));
+                                array1.push("&name=" + encodeURIComponent(args.data.podname));
+                                array1.push("&gateway=" + encodeURIComponent(args.data.reservedSystemGateway));
+                                array1.push("&netmask=" + encodeURIComponent(args.data.reservedSystemNetmask));
+                                array1.push("&startIp=" + encodeURIComponent(args.data.reservedSystemStartIp));
 
                                 var endip = args.data.reservedSystemEndIp; //optional
                                 if (endip != null && endip.length > 0)
-                                array1.push("&endIp=" + todb(endip));
+                                array1.push("&endIp=" + encodeURIComponent(endip));
                                 var podId = null;
                                 $.ajax({
                                     url: createURL("createPod" + array1.join("")),
@@ -13680,7 +13678,7 @@
                                         if (args.$form.find('.form-item[rel=isDedicated]').find('input[type=checkbox]').is(':Checked') == true) {
                                             var array2 =[];
                                             if (args.data.accountId != "")
-                                            array2.push("&account=" + todb(args.data.accountId));
+                                            array2.push("&account=" + encodeURIComponent(args.data.accountId));
 
                                             if (podId != null) {
                                                 $.ajax({
@@ -13759,11 +13757,11 @@
                                 action: function (args) {
                                     var array1 =[];
 
-                                    array1.push("&name=" + todb(args.data.name));
-                                    array1.push("&netmask=" + todb(args.data.netmask));
+                                    array1.push("&name=" + encodeURIComponent(args.data.name));
+                                    array1.push("&netmask=" + encodeURIComponent(args.data.netmask));
 
                                     if (args.data.gateway != null && args.data.gateway.length > 0)
-                                    array1.push("&gateway=" + todb(args.data.gateway));
+                                    array1.push("&gateway=" + encodeURIComponent(args.data.gateway));
 
                                     $.ajax({
                                         url: createURL("updatePod&id=" + args.context.pods[0].id + array1.join("")),
@@ -13874,7 +13872,7 @@
                                     //EXPLICIT DEDICATION
                                     var array2 =[];
                                     if (args.data.accountId != "")
-                                    array2.push("&account=" + todb(args.data.accountId));
+                                    array2.push("&account=" + encodeURIComponent(args.data.accountId));
 
                                     $.ajax({
                                         url: createURL("dedicatePod&podId=" +
@@ -14720,13 +14718,12 @@
 
                                 var clusterName = args.data.name;
                                 if (args.data.hypervisor == "Ovm3") {
-                                     array1.push("&ovm3pool=" + todb(args.data.ovm3pool));
-                                     array1.push("&ovm3cluster=" + todb(args.data.ovm3cluster));
-                                     array1.push("&ovm3vip=" + todb(args.data.ovm3vip));
+                                     array1.push("&ovm3pool=" + encodeURIComponent(args.data.ovm3pool));
+                                     array1.push("&ovm3cluster=" + encodeURIComponent(args.data.ovm3cluster));
+                                     array1.push("&ovm3vip=" + encodeURIComponent(args.data.ovm3vip));
                                 }
                                 if (args.data.hypervisor == "VMware") {
-                                    array1.push("&username=" + todb(args.data.vCenterUsername));
-                                    array1.push("&password=" + todb(args.data.vCenterPassword));
+                                    cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.vCenterUsername, args.data.vCenterPassword);
 
                                     //vSwitch Public Type
                                     if (args.$form.find('.form-item[rel=vSwitchPublicType]').css('display') != 'none' && args.data.vSwitchPublicType != "") {
@@ -14793,11 +14790,11 @@
                                     url = "http://" + hostname; else
                                     url = hostname;
                                     url += "/" + dcName + "/" + clusterName;
-                                    array1.push("&url=" + todb(url));
+                                    array1.push("&url=" + encodeURIComponent(url));
 
                                     clusterName = hostname + "/" + dcName + "/" + clusterName; //override clusterName
                                 }
-                                array1.push("&clustername=" + todb(clusterName));
+                                array1.push("&clustername=" + encodeURIComponent(clusterName));
                                 var clusterId = null;
                                 $.ajax({
                                     url: createURL("addCluster" + array1.join("")),
@@ -14811,7 +14808,7 @@
                                         var array2 =[];
                                         if (args.$form.find('.form-item[rel=isDedicated]').find('input[type=checkbox]').is(':Checked') == true) {
                                             if (args.data.accountId != "")
-                                            array2.push("&account=" + todb(args.data.accountId));
+                                            array2.push("&account=" + encodeURIComponent(args.data.accountId));
 
                                             if (clusterId != null) {
                                                 $.ajax({
@@ -15043,7 +15040,7 @@
                                     //EXPLICIT DEDICATION
                                     var array2 =[];
                                     if (args.data.accountId != "")
-                                    array2.push("&account=" + todb(args.data.accountId));
+                                    array2.push("&account=" + encodeURIComponent(args.data.accountId));
                                     $.ajax({
                                         url: createURL("dedicateCluster&clusterId=" +
                                         args.context.clusters[0].id +
@@ -16305,7 +16302,7 @@
 
                                         if (args.$form.find('.form-item[rel=isDedicated]').find('input[type=checkbox]').is(':Checked') == true) {
                                             if (args.data.accountId != "")
-                                            array2.push("&account=" + todb(args.data.accountId));
+                                            array2.push("&account=" + encodeURIComponent(args.data.accountId));
 
 
                                             if (hostId != null) {
@@ -16385,7 +16382,7 @@
                                 label: 'label.edit',
                                 action: function (args) {
                                     var array1 =[];
-                                    array1.push("&hosttags=" + todb(args.data.hosttags));
+                                    array1.push("&hosttags=" + encodeURIComponent(args.data.hosttags));
 
                                     if (args.data.oscategoryid != null && args.data.oscategoryid.length > 0)
                                         array1.push("&osCategoryId=" + args.data.oscategoryid);
@@ -16469,7 +16466,7 @@
                                     //EXPLICIT DEDICATION
                                     var array2 =[];
                                     if (args.data.accountId != "")
-                                    array2.push("&account=" + todb(args.data.accountId));
+                                    array2.push("&account=" + encodeURIComponent(args.data.accountId));
 
                                     $.ajax({
                                         url: createURL("dedicateHost&hostId=" +
@@ -18682,7 +18679,7 @@
                             /******************************/
                             action: function (args) {
                                 var array1 =[];
-                                array1.push("&scope=" + todb(args.data.scope));
+                                array1.push("&scope=" + encodeURIComponent(args.data.scope));
 
                                 array1.push("&zoneid=" + args.data.zoneid);
 
@@ -18703,9 +18700,9 @@
                                     array1.push("&hostid=" + args.data.hostId);
                                 }
 
-                                array1.push("&name=" + todb(args.data.name));
+                                array1.push("&name=" + encodeURIComponent(args.data.name));
 
-                                array1.push("&provider=" + todb(args.data.provider));
+                                array1.push("&provider=" + encodeURIComponent(args.data.provider));
 
                                 if (args.data.provider == "DefaultPrimary")
                                 {
@@ -18722,7 +18719,7 @@
                                             path = "/" + path;
                                         url = smbURL(server, path);
                                         array1.push("&details[0].user=" + args.data.smbUsername);
-                                        array1.push("&details[1].password=" + todb(args.data.smbPassword));
+                                        array1.push("&details[1].password=" + encodeURIComponent(args.data.smbPassword));
                                         array1.push("&details[2].domain=" + args.data.smbDomain);
                                     } else if (args.data.protocol == "PreSetup") {
                                         var path = args.data.path;
@@ -18772,7 +18769,7 @@
                                         url = "";
                                     }
 
-                                    array1.push("&url=" + todb(url));
+                                    array1.push("&url=" + encodeURIComponent(url));
                                 }
                                 else
                                 {
@@ -18790,13 +18787,13 @@
 
                                     if (args.data.url != null && args.data.url.length > 0)
                                     {
-                                        array1.push("&url=" + todb(args.data.url));
+                                        array1.push("&url=" + encodeURIComponent(args.data.url));
                                     }
                                 }
 
                                 if (args.data.storageTags != null && args.data.storageTags.length > 0)
                                 {
-                                    array1.push("&tags=" + todb(args.data.storageTags));
+                                    array1.push("&tags=" + encodeURIComponent(args.data.storageTags));
                                 }
 
                                 if ("custom" in args.response) {
@@ -18861,7 +18858,7 @@
                                 label: 'label.edit',
                                 action: function (args) {
                                     var array1 =[];
-                                    array1.push("&tags=" + todb(args.data.tags));
+                                    array1.push("&tags=" + encodeURIComponent(args.data.tags));
 
                                     if (args.data.disksizetotal != null && args.data.disksizetotal.length > 0) {
                                         var diskSizeTotal = args.data.disksizetotal.split(",").join("");
@@ -21067,14 +21064,13 @@
     function addExternalLoadBalancer(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 =[];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&networkdevicetype=" + todb(args.data.networkdevicetype));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.username, args.data.password);
+        array1.push("&networkdevicetype=" + encodeURIComponent(args.data.networkdevicetype));
 
         if (apiCmd == "addNetscalerLoadBalancer") {
             array1.push("&gslbprovider=" + (args.data.gslbprovider == "on"));
-            array1.push("&gslbproviderpublicip=" + todb(args.data.gslbproviderpublicip));
-            array1.push("&gslbproviderprivateip=" + todb(args.data.gslbproviderprivateip));
+            array1.push("&gslbproviderpublicip=" + encodeURIComponent(args.data.gslbproviderpublicip));
+            array1.push("&gslbproviderprivateip=" + encodeURIComponent(args.data.gslbproviderprivateip));
         }
 
         //construct URL starts here
@@ -21151,7 +21147,7 @@
         url.push("lbdevicededicated=" + dedicated.toString());
 
 
-        array1.push("&url=" + todb(url.join("")));
+        array1.push("&url=" + encodeURIComponent(url.join("")));
         //construct URL ends here
 
         $.ajax({
@@ -21177,9 +21173,8 @@
     function addExternalFirewall(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 =[];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&networkdevicetype=" + todb(args.data.networkdevicetype));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.username, args.data.password); 
+        array1.push("&networkdevicetype=" + encodeURIComponent(args.data.networkdevicetype));
 
         //construct URL starts here
         var url =[];
@@ -21333,7 +21328,7 @@
         }
         // END - Palo Alto Specific Fields
 
-        array1.push("&url=" + todb(url.join("")));
+        array1.push("&url=" + encodeURIComponent(url.join("")));
         //construct URL ends here
 
         $.ajax({
@@ -21359,19 +21354,18 @@
     function addNiciraNvpDevice(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 =[];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&hostname=" + todb(args.data.host));
-        array1.push("&transportzoneuuid=" + todb(args.data.transportzoneuuid));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, rgs.data.username, args.data.password);
+        array1.push("&hostname=" + encodeURIComponent(args.data.host));
+        array1.push("&transportzoneuuid=" + encodeURIComponent(args.data.transportzoneuuid));
 
         var l3GatewayServiceUuid = args.data.l3gatewayserviceuuid;
         if (l3GatewayServiceUuid != null && l3GatewayServiceUuid.length > 0) {
-            array1.push("&l3gatewayserviceuuid=" + todb(args.data.l3gatewayserviceuuid));
+            array1.push("&l3gatewayserviceuuid=" + encodeURIComponent(args.data.l3gatewayserviceuuid));
         }
 		
 		var l2GatewayServiceUuid = args.data.l2gatewayserviceuuid;
         if (l2GatewayServiceUuid != null && l2GatewayServiceUuid.length > 0) {
-            array1.push("&l2gatewayserviceuuid=" + todb(args.data.l2gatewayserviceuuid));
+            array1.push("&l2gatewayserviceuuid=" + encodeURIComponent(args.data.l2gatewayserviceuuid));
         }
 
         $.ajax({
@@ -21397,9 +21391,8 @@
     function addBrocadeVcsDevice(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 =[];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&hostname=" + todb(args.data.host));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.username, args.data.password);
+        array1.push("&hostname=" + encodeURIComponent(args.data.host));
 
         $.ajax({
             url: createURL(apiCmd + array1.join("")),
@@ -21424,9 +21417,8 @@
     function addOpenDaylightController(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 =[];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&url=" + todb(args.data.url));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.username, args.data.password);
+        array1.push("&url=" + encodeURIComponent(args.data.url));
 
         $.ajax({
             url: createURL(apiCmd + array1.join("")),
@@ -21451,9 +21443,9 @@
     function addBigSwitchBcfDevice(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 =[];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&hostname=" + todb(args.data.host));
-        array1.push("&username=" + args.data.username);
-        array1.push("&password=" + args.data.password);
+        array1.push("&hostname=" + encodeURIComponent(args.data.host));
+        array1.push("&username=" + encodeURIComponent(args.data.username));
+        cloudStack.addPasswordToCommandUrlParameterArray(array1, args.data.password);
         array1.push("&nat=" + (args.data.nat == 'on' ? "true": "false"));
 
         $.ajax({
@@ -21478,13 +21470,12 @@
     function addNuageVspDevice(args, physicalNetworkObj, apiCmd, apiCmdRes, apiCmdObj) {
         var array1 = [];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&hostname=" + todb(args.data.hostname));
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&port=" + todb(args.data.port));
-        array1.push("&apiversion=" + todb(args.data.apiversion));
-        array1.push("&retrycount=" + todb(args.data.retrycount));
-        array1.push("&retryinterval=" + todb(args.data.retryinterval));
+        array1.push("&hostname=" + encodeURIComponent(args.data.hostname));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.username, args.data.password);
+        array1.push("&port=" + encodeURIComponent(args.data.port));
+        array1.push("&apiversion=" + encodeURIComponent(args.data.apiversion));
+        array1.push("&retrycount=" + encodeURIComponent(args.data.retrycount));
+        array1.push("&retryinterval=" + encodeURIComponent(args.data.retryinterval));
 
         $.ajax({
             url: createURL(apiCmd + array1.join("")),
@@ -21509,9 +21500,8 @@
     function addGloboDnsHost(args, physicalNetworkObj, apiCmd, apiCmdRes) {
         var array1 = [];
         array1.push("&physicalnetworkid=" + physicalNetworkObj.id);
-        array1.push("&username=" + todb(args.data.username));
-        array1.push("&password=" + todb(args.data.password));
-        array1.push("&url=" + todb(args.data.url));
+        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.username, args.data.password);
+        array1.push("&url=" + encodeURIComponent(args.data.url));
 
         $.ajax({
             url: createURL(apiCmd + array1.join("")),
@@ -21672,20 +21662,9 @@
                                                                                                                                     dataType: "json",
                                                                                                                                     async: false,
                                                                                                                                     success: function (json) {
-                                                                                                                                        //create pod
-                                                                                                                                        var array3 =[];
-                                                                                                                                        array3.push("&zoneId=" + newZoneObj.id);
-                                                                                                                                        array3.push("&name=" + todb(args.data.podName));
-                                                                                                                                        array3.push("&gateway=" + todb(args.data.podGateway));
-                                                                                                                                        array3.push("&netmask=" + todb(args.data.podNetmask));
-                                                                                                                                        array3.push("&startIp=" + todb(args.data.podStartIp));
-
-                                                                                                                                        var endip = args.data.podEndIp; //optional
-                                                                                                                                        if (endip != null && endip.length > 0)
-                                                                                                                                        array3.push("&endIp=" + todb(endip));
-
+                                                                                                                                        var arrayOfParameters = cloudStack.createArrayOfParametersForCreatePodCommand(newZoneObj.id, args.data);
                                                                                                                                         $.ajax({
-                                                                                                                                            url: createURL("createPod" + array3.join("")),
+                                                                                                                                            url: createURL("createPod" + arrayOfParameters.join("")),
                                                                                                                                             dataType: "json",
                                                                                                                                             async: false,
                                                                                                                                             success: function (json) {
@@ -21723,20 +21702,9 @@
                                                                                                         dataType: "json",
                                                                                                         async: false,
                                                                                                         success: function (json) {
-                                                                                                            //create pod
-                                                                                                            var array3 =[];
-                                                                                                            array3.push("&zoneId=" + newZoneObj.id);
-                                                                                                            array3.push("&name=" + todb(args.data.podName));
-                                                                                                            array3.push("&gateway=" + todb(args.data.podGateway));
-                                                                                                            array3.push("&netmask=" + todb(args.data.podNetmask));
-                                                                                                            array3.push("&startIp=" + todb(args.data.podStartIp));
-
-                                                                                                            var endip = args.data.podEndIp; //optional
-                                                                                                            if (endip != null && endip.length > 0)
-                                                                                                            array3.push("&endIp=" + todb(endip));
-
+                                                                                                            var arrayOfParameters = cloudStack.createArrayOfParametersForCreatePodCommand(newZoneObj.id, args.data);
                                                                                                             $.ajax({
-                                                                                                                url: createURL("createPod" + array3.join("")),
+                                                                                                                url: createURL("createPod" + arrayOfParameters.join("")),
                                                                                                                 dataType: "json",
                                                                                                                 async: false,
                                                                                                                 success: function (json) {
@@ -21750,21 +21718,9 @@
                                                                                                     });
                                                                                                 }
                                                                                             } else {
-                                                                                                //Advanced zone
-                                                                                                //create pod
-                                                                                                var array3 =[];
-                                                                                                array3.push("&zoneId=" + newZoneObj.id);
-                                                                                                array3.push("&name=" + todb(args.data.podName));
-                                                                                                array3.push("&gateway=" + todb(args.data.podGateway));
-                                                                                                array3.push("&netmask=" + todb(args.data.podNetmask));
-                                                                                                array3.push("&startIp=" + todb(args.data.podStartIp));
-
-                                                                                                var endip = args.data.podEndIp; //optional
-                                                                                                if (endip != null && endip.length > 0)
-                                                                                                array3.push("&endIp=" + todb(endip));
-
+                                                                                                var arrayOfParameters = cloudStack.createArrayOfParametersForCreatePodCommand(newZoneObj.id, args.data);
                                                                                                 $.ajax({
-                                                                                                    url: createURL("createPod" + array3.join("")),
+                                                                                                    url: createURL("createPod" + arrayOfParameters.join("")),
                                                                                                     dataType: "json",
                                                                                                     async: false,
                                                                                                     success: function (json) {
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index d7980c9ca46..25baf6c0f19 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -3228,16 +3228,16 @@
                         },
                         action: function(args) {
                             var array1 = [];
-                            array1.push("&name=" + todb(args.data.name));
-                            array1.push("&displaytext=" + todb(args.data.displaytext));
+                            array1.push("&name=" + encodeURIComponent(args.data.name));
+                            array1.push("&displaytext=" + encodeURIComponent(args.data.displaytext));
 
                             //args.data.networkdomain is null when networkdomain field is hidden
                             if (args.data.networkdomain != null && args.data.networkdomain != args.context.networks[0].networkdomain)
-                                array1.push("&networkdomain=" + todb(args.data.networkdomain));
+                                array1.push("&networkdomain=" + encodeURIComponent(args.data.networkdomain));
 
                             //args.data.networkofferingid is null when networkofferingid field is hidden
                             if (args.data.networkofferingid != null && args.data.networkofferingid != args.context.networks[0].networkofferingid) {
-                                array1.push("&networkofferingid=" + todb(args.data.networkofferingid));
+                                array1.push("&networkofferingid=" + encodeURIComponent(args.data.networkofferingid));
 
                                 if (args.context.networks[0].type == "Isolated") { //Isolated network
                                     cloudStack.dialog.confirm({
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index eedf16af852..44b2736a2ca 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -2272,7 +2272,7 @@
 
                     var array1 = [];
                     var networkType = args.data.zone.networkType; //"Basic", "Advanced"
-                    array1.push("&networktype=" + todb(networkType));
+                    array1.push("&networktype=" + encodeURIComponent(networkType));
 
                     if (networkType == "Basic") {
                         if (selectedNetworkOfferingHavingSG == true)
@@ -2284,13 +2284,13 @@
                             array1.push("&securitygroupenabled=false");
 
                             if (args.data.zone.guestcidraddress != null && args.data.zone.guestcidraddress.length > 0)
-                                array1.push("&guestcidraddress=" + todb(args.data.zone.guestcidraddress));
+                                array1.push("&guestcidraddress=" + encodeURIComponent(args.data.zone.guestcidraddress));
                         } else { // args.data.zone.sgEnabled    == true
                             array1.push("&securitygroupenabled=true");
                         }
                     }
 
-                    array1.push("&name=" + todb(args.data.zone.name));
+                    array1.push("&name=" + encodeURIComponent(args.data.zone.name));
 
                     if (args.data.zone.localstorageenabled == 'on') {
                         array1.push("&localstorageenabled=true");
@@ -2298,25 +2298,25 @@
 
                     //IPv4
                     if (args.data.zone.ip4dns1 != null && args.data.zone.ip4dns1.length > 0)
-                        array1.push("&dns1=" + todb(args.data.zone.ip4dns1));
+                        array1.push("&dns1=" + encodeURIComponent(args.data.zone.ip4dns1));
                     if (args.data.zone.ip4dns2 != null && args.data.zone.ip4dns2.length > 0)
-                        array1.push("&dns2=" + todb(args.data.zone.ip4dns2));
+                        array1.push("&dns2=" + encodeURIComponent(args.data.zone.ip4dns2));
 
                     //IPv6
                     if (args.data.zone.ip6dns1 != null && args.data.zone.ip6dns1.length > 0)
-                        array1.push("&ip6dns1=" + todb(args.data.zone.ip6dns1));
+                        array1.push("&ip6dns1=" + encodeURIComponent(args.data.zone.ip6dns1));
                     if (args.data.zone.ip6dns2 != null && args.data.zone.ip6dns2.length > 0)
-                        array1.push("&ip6dns2=" + todb(args.data.zone.ip6dns2));
+                        array1.push("&ip6dns2=" + encodeURIComponent(args.data.zone.ip6dns2));
 
 
-                    array1.push("&internaldns1=" + todb(args.data.zone.internaldns1));
+                    array1.push("&internaldns1=" + encodeURIComponent(args.data.zone.internaldns1));
 
                     var internaldns2 = args.data.zone.internaldns2;
                     if (internaldns2 != null && internaldns2.length > 0)
-                        array1.push("&internaldns2=" + todb(internaldns2));
+                        array1.push("&internaldns2=" + encodeURIComponent(internaldns2));
 
                     if (args.data.zone.networkdomain != null && args.data.zone.networkdomain.length > 0)
-                        array1.push("&domain=" + todb(args.data.zone.networkdomain));
+                        array1.push("&domain=" + encodeURIComponent(args.data.zone.networkdomain));
 
                     $.ajax({
                         url: createURL("createZone" + array1.join("")),
@@ -2374,7 +2374,7 @@
                         //Basic zone has only one physical network
                         var array1 = [];
                         if ("physicalNetworks" in args.data) { //from add-zone-wizard
-                            array1.push("&name=" + todb(args.data.physicalNetworks[0].name));
+                            array1.push("&name=" + encodeURIComponent(args.data.physicalNetworks[0].name));
                         } else { //from quick-install-wizard
                             array1.push("&name=PhysicalNetworkInBasicZone");
                         }
@@ -2595,9 +2595,9 @@
                         $(args.data.physicalNetworks).each(function(index) {
                             var thisPhysicalNetwork = this;
                             var array1 = [];
-                            array1.push("&name=" + todb(thisPhysicalNetwork.name));
+                            array1.push("&name=" + encodeURIComponent(thisPhysicalNetwork.name));
                             if (thisPhysicalNetwork.isolationMethod != null && thisPhysicalNetwork.isolationMethod.length > 0)
-                                array1.push("&isolationmethods=" + todb(thisPhysicalNetwork.isolationMethod));
+                                array1.push("&isolationmethods=" + encodeURIComponent(thisPhysicalNetwork.isolationMethod));
                             $.ajax({
                                 url: createURL("createPhysicalNetwork&zoneid=" + args.data.returnedZone.id + array1.join("")),
                                 dataType: "json",
@@ -3701,12 +3701,11 @@
 
                     var array1 = [];
                     array1.push("&physicalnetworkid=" + args.data.returnedBasicPhysicalNetwork.id);
-                    array1.push("&username=" + todb(args.data.basicPhysicalNetwork.username));
-                    array1.push("&password=" + todb(args.data.basicPhysicalNetwork.password));
-                    array1.push("&networkdevicetype=" + todb(args.data.basicPhysicalNetwork.networkdevicetype));
+                    cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.basicPhysicalNetwork.username, args.data.basicPhysicalNetwork.password);
+                    array1.push("&networkdevicetype=" + encodeURIComponent(args.data.basicPhysicalNetwork.networkdevicetype));
                     array1.push("&gslbprovider=" + (args.data.basicPhysicalNetwork.gslbprovider == "on"));
-                    array1.push("&gslbproviderpublicip=" + todb(args.data.basicPhysicalNetwork.gslbproviderpublicip));
-                    array1.push("&gslbproviderprivateip=" + todb(args.data.basicPhysicalNetwork.gslbproviderprivateip));
+                    array1.push("&gslbproviderpublicip=" + encodeURIComponent(args.data.basicPhysicalNetwork.gslbproviderpublicip));
+                    array1.push("&gslbproviderprivateip=" + encodeURIComponent(args.data.basicPhysicalNetwork.gslbproviderprivateip));
 
                     //construct URL starts here
                     var url = [];
@@ -3781,7 +3780,7 @@
                     url.push("lbdevicededicated=" + dedicated.toString());
 
 
-                    array1.push("&url=" + todb(url.join("")));
+                    array1.push("&url=" + encodeURIComponent(url.join("")));
                     //construct URL ends here
 
                     $.ajax({
@@ -3905,14 +3904,14 @@
 
                     var array3 = [];
                     array3.push("&zoneId=" + args.data.returnedZone.id);
-                    array3.push("&name=" + todb(args.data.pod.name));
-                    array3.push("&gateway=" + todb(args.data.pod.reservedSystemGateway));
-                    array3.push("&netmask=" + todb(args.data.pod.reservedSystemNetmask));
-                    array3.push("&startIp=" + todb(args.data.pod.reservedSystemStartIp));
+                    array3.push("&name=" + encodeURIComponent(args.data.pod.name));
+                    array3.push("&gateway=" + encodeURIComponent(args.data.pod.reservedSystemGateway));
+                    array3.push("&netmask=" + encodeURIComponent(args.data.pod.reservedSystemNetmask));
+                    array3.push("&startIp=" + encodeURIComponent(args.data.pod.reservedSystemStartIp));
 
                     var endip = args.data.pod.reservedSystemEndIp; //optional
                     if (endip != null && endip.length > 0)
-                        array3.push("&endIp=" + todb(endip));
+                        array3.push("&endIp=" + encodeURIComponent(endip));
 
                     $.ajax({
                         url: createURL("createPod" + array3.join("")),
@@ -3962,7 +3961,7 @@
                             array1.push("&zoneId=" + args.data.returnedZone.id);
 
                             if (this.vlanid != null && this.vlanid.length > 0)
-                                array1.push("&vlan=" + todb(this.vlanid));
+                                array1.push("&vlan=" + encodeURIComponent(this.vlanid));
                             else
                                 array1.push("&vlan=untagged");
 
@@ -4202,7 +4201,7 @@
                                 });
 
                                 $.ajax({
-                                    url: createURL("updatePhysicalNetwork&id=" + returnedId + "&vlan=" + todb(vlan)),
+                                    url: createURL("updatePhysicalNetwork&id=" + returnedId + "&vlan=" + encodeURIComponent(vlan)),
                                     dataType: "json",
                                     success: function(json) {
                                         var jobId = json.updatephysicalnetworkresponse.jobid;
@@ -4273,8 +4272,7 @@
                     var clusterName = args.data.cluster.name;
 
                     if (args.data.cluster.hypervisor == "VMware") {
-                        array1.push("&username=" + todb(args.data.cluster.vCenterUsername));
-                        array1.push("&password=" + todb(args.data.cluster.vCenterPassword));
+                        cloudStack.addUsernameAndPasswordToCommandUrlParameterArrayIfItIsNotNullAndNotEmpty(array1, args.data.cluster.vCenterUsername, args.data.cluster.vCenterPassword);
 
                         if (args.data.cluster.vsmipaddress != null && args.data.cluster.vsmipaddress.length > 0) {
                             array1.push('&vsmipaddress=' + args.data.cluster.vsmipaddress);
@@ -4297,10 +4295,10 @@
                         else
                             url = hostname;
                         url += "/" + dcName + "/" + clusterName;
-                        array1.push("&url=" + todb(url));
+                        array1.push("&url=" + encodeURIComponent(url));
                         clusterName = hostname + "/" + dcName + "/" + clusterName; //override clusterName
                     }
-                    array1.push("&clustername=" + todb(clusterName));
+                    array1.push("&clustername=" + encodeURIComponent(clusterName));
 
                     if (args.data.cluster.hypervisor == "VMware") {
                         var vmwareData = {
@@ -4466,15 +4464,15 @@
                     array1.push("&zoneid=" + args.data.returnedZone.id);
                     array1.push("&podId=" + args.data.returnedPod.id);
                     array1.push("&clusterid=" + args.data.returnedCluster.id);
-                    array1.push("&name=" + todb(args.data.primaryStorage.name));
-                    array1.push("&scope=" + todb(args.data.primaryStorage.scope));
+                    array1.push("&name=" + encodeURIComponent(args.data.primaryStorage.name));
+                    array1.push("&scope=" + encodeURIComponent(args.data.primaryStorage.scope));
 
                     //zone-wide-primary-storage is supported only for KVM and VMWare
                     if (args.data.primaryStorage.scope == "zone") { //hypervisor type of the hosts in zone that will be attached to this storage pool. KVM, VMware supported as of now.
                         if(args.data.cluster.hypervisor != undefined) {
-                            array1.push("&hypervisor=" + todb(args.data.cluster.hypervisor));
+                            array1.push("&hypervisor=" + encodeURIComponent(args.data.cluster.hypervisor));
                         } else if(args.data.returnedCluster.hypervisortype != undefined) {
-                            array1.push("&hypervisor=" + todb(args.data.returnedCluster.hypervisortype));
+                            array1.push("&hypervisor=" + encodeURIComponent(args.data.returnedCluster.hypervisortype));
                         } else {
                             cloudStack.dialog.notice({
                                 message: "Error: args.data.cluster.hypervisor is undefined. So is args.data.returnedCluster.hypervisortype (zone-wide-primary-storage)"
@@ -4495,7 +4493,7 @@
                             path = "/" + path;
                         url = smbURL(server, path);
                         array1.push("&details[0].user=" + args.data.primaryStorage.smbUsername);
-                        array1.push("&details[1].password=" + todb(args.data.primaryStorage.smbPassword));
+                        array1.push("&details[1].password=" + encodeURIComponent(args.data.primaryStorage.smbPassword));
                         array1.push("&details[2].domain=" + args.data.primaryStorage.smbDomain);
                     } else if (args.data.primaryStorage.protocol == "PreSetup") {
                         var path = args.data.primaryStorage.path;
@@ -4536,10 +4534,10 @@
                         var lun = args.data.primaryStorage.lun;
                         url = iscsiURL(server, iqn, lun);
                     }
-                    array1.push("&url=" + todb(url));
+                    array1.push("&url=" + encodeURIComponent(url));
 
                     if (args.data.primaryStorage.storageTags != null && args.data.primaryStorage.storageTags.length > 0)
-                        array1.push("&tags=" + todb(args.data.primaryStorage.storageTags));
+                        array1.push("&tags=" + encodeURIComponent(args.data.primaryStorage.storageTags));
 
                     $.ajax({
                         url: createURL("createStoragePool" + array1.join("")),


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services