You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2014/11/25 12:43:45 UTC

[1/4] git commit: updated refs/heads/4.3 to 1f21c29

Repository: cloudstack
Updated Branches:
  refs/heads/4.3 2aa9bb689 -> 1f21c2985


CLOUDSTACK-6075: Increase the ram size for router service offering

Increased the ram size of Internal load balancer vm service offering also
Backported from fix by Harikrishna Patnala <ha...@citrix.com>
https://reviews.apache.org/r/17941/

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


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

Branch: refs/heads/4.3
Commit: 6d31aca25cd5848272aaa190581f1f7c2bc00729
Parents: 2aa9bb6
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Tue Nov 25 14:08:25 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 14:08:25 2014 +0530

----------------------------------------------------------------------
 .../com/cloud/upgrade/dao/Upgrade431to432.java  | 108 +++++++++++++++++++
 .../lb/InternalLoadBalancerVMManager.java       |   2 +-
 server/src/com/cloud/configuration/Config.java  |   2 +-
 .../router/VirtualNetworkApplianceManager.java  |   2 +-
 4 files changed, 111 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6d31aca2/engine/schema/src/com/cloud/upgrade/dao/Upgrade431to432.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade431to432.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade431to432.java
index e3c8147..cfad21d 100644
--- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade431to432.java
+++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade431to432.java
@@ -28,6 +28,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import com.cloud.utils.exception.CloudRuntimeException;
+
 import org.apache.log4j.Logger;
 
 public class Upgrade431to432 implements DbUpgrade {
@@ -55,6 +57,112 @@ public class Upgrade431to432 implements DbUpgrade {
 
     @Override
     public void performDataMigration(Connection conn) {
+        updateMaxRouterSizeConfig(conn);
+        upgradeMemoryOfVirtualRoutervmOffering(conn);
+        upgradeMemoryOfInternalLoadBalancervmOffering(conn);
+    }
+
+    private void updateMaxRouterSizeConfig(Connection conn) {
+        PreparedStatement updatePstmt = null;
+        try {
+            updatePstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value='256' WHERE name='router.ram.size'");
+            updatePstmt.executeUpdate();
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Unable to upgrade max ram size of router in config.", e);
+        } finally {
+            try {
+                if (updatePstmt != null) {
+                    updatePstmt.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
+        s_logger.debug("Done updating router.ram.size config to 256");
+    }
+
+    private void upgradeMemoryOfInternalLoadBalancervmOffering(Connection conn) {
+        PreparedStatement updatePstmt = null;
+        PreparedStatement selectPstmt = null;
+        ResultSet selectResultSet = null;
+        int newRamSize = 256; //256MB
+        long serviceOfferingId = 0;
+
+        /**
+         * Pick first row in service_offering table which has system vm type as internalloadbalancervm. User added offerings would start from 2nd row onwards.
+         * We should not update/modify any user-defined offering.
+         */
+
+        try {
+            selectPstmt = conn.prepareStatement("SELECT id FROM `cloud`.`service_offering` WHERE vm_type='internalloadbalancervm'");
+            updatePstmt = conn.prepareStatement("UPDATE `cloud`.`service_offering` SET ram_size=? WHERE id=?");
+            selectResultSet = selectPstmt.executeQuery();
+            if(selectResultSet.next()) {
+                serviceOfferingId = selectResultSet.getLong("id");
+            }
+
+            updatePstmt.setInt(1, newRamSize);
+            updatePstmt.setLong(2, serviceOfferingId);
+            updatePstmt.executeUpdate();
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Unable to upgrade ram_size of service offering for internal loadbalancer vm. ", e);
+        } finally {
+            try {
+                if (selectPstmt != null) {
+                    selectPstmt.close();
+                }
+                if (selectResultSet != null) {
+                    selectResultSet.close();
+                }
+                if (updatePstmt != null) {
+                    updatePstmt.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
+        s_logger.debug("Done upgrading RAM for service offering of internal loadbalancer vm to " + newRamSize);
+    }
+
+
+    private void upgradeMemoryOfVirtualRoutervmOffering(Connection conn) {
+        PreparedStatement updatePstmt = null;
+        PreparedStatement selectPstmt = null;
+        ResultSet selectResultSet = null;
+        int newRamSize = 256; //256MB
+        long serviceOfferingId = 0;
+
+        /**
+         * Pick first row in service_offering table which has system vm type as domainrouter. User added offerings would start from 2nd row onwards.
+         * We should not update/modify any user-defined offering.
+         */
+
+        try {
+            selectPstmt = conn.prepareStatement("SELECT id FROM `cloud`.`service_offering` WHERE vm_type='domainrouter'");
+            updatePstmt = conn.prepareStatement("UPDATE `cloud`.`service_offering` SET ram_size=? WHERE id=?");
+            selectResultSet = selectPstmt.executeQuery();
+            if(selectResultSet.next()) {
+                serviceOfferingId = selectResultSet.getLong("id");
+            }
+
+            updatePstmt.setInt(1, newRamSize);
+            updatePstmt.setLong(2, serviceOfferingId);
+            updatePstmt.executeUpdate();
+        } catch (SQLException e) {
+            throw new CloudRuntimeException("Unable to upgrade ram_size of service offering for domain router. ", e);
+        } finally {
+            try {
+                if (selectPstmt != null) {
+                    selectPstmt.close();
+                }
+                if (selectResultSet != null) {
+                    selectResultSet.close();
+                }
+                if (updatePstmt != null) {
+                    updatePstmt.close();
+                }
+            } catch (SQLException e) {
+            }
+        }
+        s_logger.debug("Done upgrading RAM for service offering of domain router to " + newRamSize);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6d31aca2/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java
index efd5bf5..16f522c 100644
--- a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java
+++ b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java
@@ -32,7 +32,7 @@ import com.cloud.vm.VirtualMachineProfile.Param;
 
 public interface InternalLoadBalancerVMManager {
     //RAM/CPU for the system offering used by Internal LB VMs
-    public static final int DEFAULT_INTERNALLB_VM_RAMSIZE = 128;            // 128 MB
+    public static final int DEFAULT_INTERNALLB_VM_RAMSIZE = 256;            // 256 MB
     public static final int DEFAULT_INTERNALLB_VM_CPU_MHZ = 256;            // 256 MHz
     
     /**

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6d31aca2/server/src/com/cloud/configuration/Config.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java
index 6ebb7e6..ee48002 100755
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -306,7 +306,7 @@ public enum Config {
 	HashKey("Hidden", ManagementServer.class, String.class, "security.hash.key", null, "for generic key-ed hash", null),
 	EncryptionKey("Hidden", ManagementServer.class, String.class, "security.encryption.key", null, "base64 encoded key data", null),
 	EncryptionIV("Hidden", ManagementServer.class, String.class, "security.encryption.iv", null, "base64 encoded IV data", null),
-	RouterRamSize("Hidden", NetworkOrchestrationService.class, Integer.class, "router.ram.size", "128", "Default RAM for router VM (in MB).", null),
+	RouterRamSize("Hidden", NetworkOrchestrationService.class, Integer.class, "router.ram.size", "256", "Default RAM for router VM (in MB).", null),
 
 	DefaultPageSize("Advanced", ManagementServer.class, Long.class, "default.page.size", "500", "Default page size for API list* commands", null),
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6d31aca2/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
index 4ea09e5..6059658 100644
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
@@ -62,7 +62,7 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA
     static final ConfigKey<String> RouterTemplateLxc = new ConfigKey<String>(String.class, RouterTemplateLxcCK, "Advanced", "SystemVM Template (LXC)",
         "Name of the default router template on LXC.", true, ConfigKey.Scope.Zone, null);
 
-    public static final int DEFAULT_ROUTER_VM_RAMSIZE = 128;            // 128M
+    public static final int DEFAULT_ROUTER_VM_RAMSIZE = 256;            // 256M
     public static final int DEFAULT_ROUTER_CPU_MHZ = 500;            	// 500 MHz
     public static final boolean USE_POD_VLAN = false;
     /**


[3/4] git commit: updated refs/heads/4.3 to 1f21c29

Posted by bh...@apache.org.
CLOUDSTACK-7917: Validating Load Balancer Rule when updating LB + unit test

Signed-off-by: Rajani Karuturi <ra...@gmail.com>
(cherry picked from commit c919ff83d81528b89017b5f5731b2e46350e3dfa)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java


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

Branch: refs/heads/4.3
Commit: c2f367982ec75977c3d67f726cdc028c71b63bc3
Parents: a62fa62
Author: Daniel Vega <da...@corp.globo.com>
Authored: Wed Nov 19 19:01:35 2014 -0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 14:19:16 2014 +0530

----------------------------------------------------------------------
 .../lb/LoadBalancingRulesManagerImpl.java       |   6 +
 .../network/lb/UpdateLoadBalancerTest.java      | 127 +++++++++++++++++++
 2 files changed, 133 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c2f36798/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index b830910..cdb38f0 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -1989,6 +1989,12 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
             lb.setAlgorithm(algorithm);
         }
 
+        // Validate rule in LB provider
+        LoadBalancingRule rule = getLoadBalancerRuleToApply(lb);
+        if (!validateLbRule(rule)) {
+            throw new InvalidParameterValueException("Modifications in lb rule " + lbRuleId + " are not supported.");
+        }
+
         boolean success = _lbDao.update(lbRuleId, lb);
 
         // If algorithm is changed, have to reapply the lb config

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c2f36798/server/test/com/cloud/network/lb/UpdateLoadBalancerTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/lb/UpdateLoadBalancerTest.java b/server/test/com/cloud/network/lb/UpdateLoadBalancerTest.java
new file mode 100644
index 0000000..f3a938c
--- /dev/null
+++ b/server/test/com/cloud/network/lb/UpdateLoadBalancerTest.java
@@ -0,0 +1,127 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.network.lb;
+
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.UUID;
+
+import org.apache.cloudstack.api.command.user.loadbalancer.UpdateLoadBalancerRuleCmd;
+import org.apache.cloudstack.context.CallContext;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InOrder;
+import org.mockito.Mockito;
+
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.Network;
+import com.cloud.network.NetworkModel;
+import com.cloud.network.PublicIpAddress;
+import com.cloud.network.as.dao.AutoScaleVmGroupDao;
+import com.cloud.network.dao.LBHealthCheckPolicyDao;
+import com.cloud.network.dao.LBStickinessPolicyDao;
+import com.cloud.network.dao.LoadBalancerCertMapDao;
+import com.cloud.network.dao.LoadBalancerDao;
+import com.cloud.network.dao.LoadBalancerVMMapDao;
+import com.cloud.network.dao.LoadBalancerVO;
+import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.dao.NetworkVO;
+import com.cloud.network.element.LoadBalancingServiceProvider;
+import com.cloud.user.Account;
+import com.cloud.user.AccountVO;
+import com.cloud.user.MockAccountManagerImpl;
+import com.cloud.user.UserVO;
+
+public class UpdateLoadBalancerTest {
+
+    LoadBalancingRulesManagerImpl _lbMgr = new LoadBalancingRulesManagerImpl();
+
+    private UpdateLoadBalancerRuleCmd updateLbRuleCmd;
+    private LoadBalancerDao lbDao = Mockito.mock(LoadBalancerDao.class);
+    private NetworkDao netDao = Mockito.mock(NetworkDao.class);
+    private NetworkModel netModel = Mockito.mock(NetworkModel.class);
+    private LoadBalancingServiceProvider lbServiceProvider= Mockito.mock(LoadBalancingServiceProvider.class);
+
+    private static long domainId = 5L;
+    private static String accountName = "admin";
+
+    @Before
+    public void setUp() {
+        _lbMgr._accountMgr = new MockAccountManagerImpl();
+        _lbMgr._autoScaleVmGroupDao = Mockito.mock(AutoScaleVmGroupDao.class);
+        _lbMgr._networkDao = netDao;
+        _lbMgr._networkModel = netModel;
+        _lbMgr._lb2healthcheckDao = Mockito.mock(LBHealthCheckPolicyDao.class);
+        _lbMgr._lb2stickinesspoliciesDao = Mockito.mock(LBStickinessPolicyDao.class);
+        _lbMgr._lb2VmMapDao = Mockito.mock(LoadBalancerVMMapDao.class);
+        _lbMgr._lbCertMapDao = Mockito.mock(LoadBalancerCertMapDao.class);
+        _lbMgr._lbDao = lbDao;
+        _lbMgr._lbProviders = new ArrayList<LoadBalancingServiceProvider>();
+        _lbMgr._lbProviders.add(lbServiceProvider);
+
+        updateLbRuleCmd = new UpdateLoadBalancerRuleCmd();
+
+        AccountVO account = new AccountVO(accountName, domainId, "networkDomain", Account.ACCOUNT_TYPE_NORMAL, "uuid");
+        UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
+        CallContext.register(user, account);
+    }
+
+    @Test
+    public void testValidateRuleBeforeUpdateLB() throws ResourceAllocationException, ResourceUnavailableException, InsufficientCapacityException {
+
+        LoadBalancerVO lb = new LoadBalancerVO(null, null, null, 0L, 0, 0, null, 0L, 0L, domainId, null);
+
+        when(lbDao.findById(anyLong())).thenReturn(lb);
+        when(netModel.getPublicIpAddress(anyLong())).thenReturn(Mockito.mock(PublicIpAddress.class));
+        when(netDao.findById(anyLong())).thenReturn(Mockito.mock(NetworkVO.class));
+        when(lbServiceProvider.validateLBRule(any(Network.class), any(LoadBalancingRule.class))).thenReturn(true);
+        when(lbDao.update(anyLong(), eq(lb))).thenReturn(true);
+
+        _lbMgr.updateLoadBalancerRule(updateLbRuleCmd);
+
+        InOrder inOrder = Mockito.inOrder(lbServiceProvider, lbDao);
+        inOrder.verify(lbServiceProvider).validateLBRule(any(Network.class), any(LoadBalancingRule.class));
+        inOrder.verify(lbDao).update(anyLong(), eq(lb));
+    }
+
+    @Test(expected = InvalidParameterValueException.class)
+    public void testRuleNotValidated() throws ResourceAllocationException, ResourceUnavailableException, InsufficientCapacityException {
+
+        LoadBalancerVO lb = new LoadBalancerVO(null, null, null, 0L, 0, 0, null, 0L, 0L, domainId, null);
+
+        when(lbDao.findById(anyLong())).thenReturn(lb);
+        when(netModel.getPublicIpAddress(anyLong())).thenReturn(Mockito.mock(PublicIpAddress.class));
+        when(netDao.findById(anyLong())).thenReturn(Mockito.mock(NetworkVO.class));
+        when(lbServiceProvider.validateLBRule(any(Network.class), any(LoadBalancingRule.class))).thenReturn(false);
+
+        _lbMgr.updateLoadBalancerRule(updateLbRuleCmd);
+    }
+
+    @After
+    public void tearDown() {
+        CallContext.unregister();
+    }
+
+}
\ No newline at end of file


[2/4] git commit: updated refs/heads/4.3 to 1f21c29

Posted by bh...@apache.org.
CLOUDSTACK-7966:
remove snapshot_store_ref entry, in which role is Primary, during
storage GC

(cherry picked from commit 7175247c5e10eb6c152b2629e5496337e3287afd)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


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

Branch: refs/heads/4.3
Commit: a62fa62fc6d03082a350fee404d0fa7b61d8b4d1
Parents: 6d31aca
Author: Edison Su <su...@gmail.com>
Authored: Mon Nov 24 14:25:29 2014 -0800
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 14:14:31 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/storage/StorageManagerImpl.java | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a62fa62f/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index 49132e4..385b478 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -1152,6 +1152,10 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
                         }
 
                         _snapshotDao.remove(destroyedSnapshotStoreVO.getSnapshotId());
+                        SnapshotDataStoreVO snapshotOnPrimary = _snapshotStoreDao.findBySnapshot(destroyedSnapshotStoreVO.getSnapshotId(), DataStoreRole.Primary);
+                        if (snapshotOnPrimary != null) {
+                            _snapshotStoreDao.remove(snapshotOnPrimary.getId());
+                        }
                         _snapshotStoreDao.remove(destroyedSnapshotStoreVO.getId());
                     }
 


[4/4] git commit: updated refs/heads/4.3 to 1f21c29

Posted by bh...@apache.org.
CLOUDSTACK-7915: Remove hard-coded values for Load Balancer algorithms in UI

Signed-off-by: Rajani Karuturi <ra...@gmail.com>
(cherry picked from commit ba6dfd84702eeef0362b94068add1328db84133a)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	client/WEB-INF/classes/resources/messages_fr_FR.properties
	client/WEB-INF/classes/resources/messages_ja_JP.properties
	client/WEB-INF/classes/resources/messages_ko_KR.properties
	client/WEB-INF/classes/resources/messages_nl_NL.properties
	client/WEB-INF/classes/resources/messages_zh_CN.properties
	ui/dictionary.jsp


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

Branch: refs/heads/4.3
Commit: 1f21c29855be422447eaf79bd947ca84a7bebbeb
Parents: c2f3679
Author: Daniel Vega <da...@corp.globo.com>
Authored: Mon Nov 17 16:18:55 2014 -0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Tue Nov 25 17:12:49 2014 +0530

----------------------------------------------------------------------
 .../classes/resources/messages.properties       |  6 +-
 .../classes/resources/messages_ar.properties    |  4 +-
 .../classes/resources/messages_es.properties    |  4 +-
 .../classes/resources/messages_fr_FR.properties |  8 ++-
 .../classes/resources/messages_it_IT.properties |  4 +-
 .../classes/resources/messages_ja_JP.properties |  9 ++-
 .../classes/resources/messages_ko_KR.properties |  7 ++-
 .../classes/resources/messages_nb_NO.properties |  6 +-
 .../classes/resources/messages_nl_NL.properties |  9 ++-
 .../classes/resources/messages_pl.properties    |  2 +-
 .../classes/resources/messages_pt_BR.properties |  6 +-
 .../classes/resources/messages_ru_RU.properties |  6 +-
 .../classes/resources/messages_zh_CN.properties |  9 ++-
 ui/dictionary.jsp                               |  4 +-
 ui/scripts/network.js                           | 65 +++++++++++++-------
 ui/scripts/vpc.js                               | 12 ++--
 16 files changed, 102 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index 9fda960..1af9b30 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -727,8 +727,10 @@ label.latest.events=Latest events
 label.launch.vm=Launch VM
 label.launch.zone=Launch zone
 label.launch=Launch
+label.lb.algorithm.leastconn=Least connections
+label.lb.algorithm.roundrobin=Round-robin
+label.lb.algorithm.source=Source
 label.LB.isolation=LB isolation
-label.least.connections=Least connections
 label.level=Level
 label.linklocal.ip=Link Local IP Address
 label.load.balancer=Load Balancer
@@ -1008,7 +1010,6 @@ label.revoke.project.invite=Revoke invitation
 label.role=Role
 label.root.disk.controller=Root disk controller
 label.root.disk.offering=Root Disk Offering
-label.round.robin=Round-robin
 label.rules=Rules
 label.running.vms=Running VMs
 label.s3.access_key=Access Key
@@ -1069,7 +1070,6 @@ label.snapshot.schedule=Setup Recurring Snapshot
 label.snapshot=Snapshot
 label.snapshots=Snapshots
 label.source.nat=Source NAT
-label.source=Source
 label.specify.IP.ranges=Specify IP ranges
 label.specify.vlan=Specify VLAN
 label.specify.vxlan=Specify VXLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_ar.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ar.properties b/client/WEB-INF/classes/resources/messages_ar.properties
index 4e190bd..ce55ade 100644
--- a/client/WEB-INF/classes/resources/messages_ar.properties
+++ b/client/WEB-INF/classes/resources/messages_ar.properties
@@ -96,7 +96,8 @@ label.invite.to=\u062f\u0639\u0648\u0629 \u0644\u0640
 label.IPsec.preshared.key=\u0645\u0641\u062a\u0627\u062d \u0623\u0645\u0646 \u0628\u0631\u0648\u062a\u0648\u0643\u0648\u0644 \u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a \u062a\u0645\u062a \u0645\u0634\u0627\u0631\u0643\u062a\u0647 \u0645\u0633\u0628\u0642\u0627
 label.isolation.uri=\u0639\u0632\u0644 \u0627\u0644\u0631\u0627\u0628\u0637
 label.keyboard.type=\u0646\u0648\u0639 \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d
-label.least.connections=\u0623\u0642\u0644 \u0627\u0644\u0625\u062a\u0635\u0627\u0644\u0627\u062a
+label.lb.algorithm.leastconn=\u0623\u0642\u0644 \u0627\u0644\u0625\u062a\u0635\u0627\u0644\u0627\u062a
+label.lb.algorithm.source=\u0645\u0635\u062f\u0631
 label.local.storage.enabled=\u062a\u0645\u0643\u064a\u0646 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u062d\u0644\u064a
 label.make.project.owner=\u062c\u0639\u0644 \u0627\u0644\u062d\u0633\u0627\u0628 \u0645\u0627\u0644\u0643 \u0644\u0644\u0645\u0634\u0631\u0648\u0639
 label.max.guest.limit=\u0627\u0644\u062d\u062f \u0627\u0644\u0623\u0642\u0635\u0627\u0621 \u0644\u0636\u064a\u0641
@@ -177,7 +178,6 @@ label.select-view=\u062d\u062f\u062f \u0637\u0631\u064a\u0642\u0629 \u0627\u0644
 label.service.capabilities=\u0642\u062f\u0631\u0627\u062a \u0627\u0644\u062e\u062f\u0645\u0629
 label.setup=\u0627\u0644\u062a\u062b\u0628\u064a\u062a
 label.site.to.site.VPN=\u0645\u0648\u0642\u0639 \u0625\u0644\u0649 \u0645\u0648\u0642\u0639-\u0627\u0644\u0634\u0628\u0643\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0627\u0644\u0638\u0627\u0647\u0631\u064a\u0629  VPN
-label.source=\u0645\u0635\u062f\u0631
 label.specify.IP.ranges=\u062a\u062d\u062f\u064a\u062f \u0646\u0637\u0627\u0642\u0627\u062a IP
 label.sticky.tablesize=\u062d\u062c\u0645 \u0627\u0644\u062c\u062f\u0648\u0644
 label.stop=\u062a\u0648\u0642\u0641

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_es.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_es.properties b/client/WEB-INF/classes/resources/messages_es.properties
index adedbb6..d3638fa 100644
--- a/client/WEB-INF/classes/resources/messages_es.properties
+++ b/client/WEB-INF/classes/resources/messages_es.properties
@@ -543,6 +543,8 @@ label.last.name=Apellido
 label.latest.events=\u00daltimos eventos
 label.launch=Lanzar
 label.launch.vm=Lanzar maquina virtual
+label.lb.algorithm.roundrobin=Round-robin
+label.lb.algorithm.source=Fuente
 label.level=Nivel
 label.load.balancer=equilibrador de carga
 label.load.balancing=Balanceador de Carga
@@ -755,7 +757,6 @@ label.restart.vpc=Reiniciar VPC
 label.restore=Restaurar
 label.role=Papel
 label.root.disk.offering=Root Disco Offering
-label.round.robin=Round-robin
 label.routing=Enrutamiento
 label.rules=Reglas
 label.running.vms=Ejecuci\u00c3\u00b3n de m\u00c3\u00a1quinas virtuales
@@ -804,7 +805,6 @@ label.snapshot.schedule=Lista de instant\u00c3\u00a1neas
 label.snapshot.s=Instant\u00c3\u00a1nea (s)
 label.snapshots=instant\u00c3\u00a1neas
 label.sockets=Sockets
-label.source=Fuente
 label.source.nat=NAT Fuente
 label.specify.vlan=Especifique VLAN
 label.specify.vxlan=Especifique VXLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_fr_FR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_fr_FR.properties b/client/WEB-INF/classes/resources/messages_fr_FR.properties
index 47f05ed..12a1c27 100644
--- a/client/WEB-INF/classes/resources/messages_fr_FR.properties
+++ b/client/WEB-INF/classes/resources/messages_fr_FR.properties
@@ -694,11 +694,13 @@ label.latest.events=Derniers \u00e9v\u00e9nements
 label.launch=D\u00e9marrer
 label.launch.vm=D\u00e9marrer VM
 label.launch.zone=D\u00e9marrer la zone
+label.lb.algorithm.round.robin=Al\u00e9atoire
+label.lb.algorithm.leastconn=Le moins de connexions
+label.lb.algorithm.source=Origine
 label.LB.isolation=R\u00e9partition de charge isol\u00e9e
 label.ldap.configuration=Configuration LDAP
 label.ldap.group.name=Groupe LDAP
 label.ldap.port=Port LDAP
-label.least.connections=Le moins de connexions
 label.level=Niveau
 label.linklocal.ip=Adresse IP lien local
 label.load.balancer=R\u00e9partiteur de charge
@@ -993,6 +995,8 @@ label.root.disk.controller=Contr\u00f4leur de disque principal
 label.root.disk.offering=Offre de disque racine
 label.root.disk.size=Taille disque principal
 label.round.robin=Al\u00e9atoire
+label.router.vm.scaled.up=VM Routeur agrandi
+label.routing.host=H\u00f4te de routage
 label.routing=Routage
 label.rules=R\u00e8gles
 label.running.vms=VMs actives
@@ -1062,6 +1066,8 @@ label.snapshots=Instantan\u00e9s
 label.sockets=Sockets
 label.source.nat=NAT Source
 label.source=Origine
+label.source.nat.supported=Source NAT support\u00e9
+label.source.port=Port Source
 label.specify.IP.ranges=Sp\u00e9cifier des plages IP
 label.specify.vlan=Pr\u00e9ciser le VLAN
 label.specify.vxlan=Pr\u00e9ciser le VXLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_it_IT.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_it_IT.properties b/client/WEB-INF/classes/resources/messages_it_IT.properties
index 57e5d66..809427a 100644
--- a/client/WEB-INF/classes/resources/messages_it_IT.properties
+++ b/client/WEB-INF/classes/resources/messages_it_IT.properties
@@ -407,6 +407,8 @@ label.label=Label
 label.latest.events=Ultimi eventi
 label.launch=Avvio
 label.launch.vm=Avviare una VM
+label.lb.algorithm.roundrobin=Round-robin
+label.lb.algorithm.source=Sorgente
 label.LB.isolation=Isolamento di LB
 label.load.balancing=Bilanciamento di Carico
 label.load.balancing.policies=Politiche di Bilanciamento di Carico
@@ -517,7 +519,6 @@ label.restore=Restore
 label.review=Riesaminare
 label.revoke.project.invite=Revocare un invit
 label.root.disk.controller=Controller del disco root
-label.round.robin=Round-robin
 label.rules=Regole
 label.s3.access_key=Access Key
 label.s3.connection_timeout=Tempo di scadenza connessione
@@ -550,7 +551,6 @@ label.set.up.zone.type=Configurazione del tipo di Zona
 label.shutdown.provider=Arresto del provider
 label.site.to.site.VPN=Site-to-site VPN
 label.skip.guide=Se si ha familiarit\u00e0 con CloudStack per utilizzi precedenti, si pu\u00f2 saltare questa guida
-label.source=Sorgente
 label.specify.IP.ranges=Specificare intervallo di indirizzi IP
 label.srx=SRX
 label.start.IP=Indirizzo IP iniziale

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_ja_JP.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ja_JP.properties b/client/WEB-INF/classes/resources/messages_ja_JP.properties
index d3de778..09c7fe0 100644
--- a/client/WEB-INF/classes/resources/messages_ja_JP.properties
+++ b/client/WEB-INF/classes/resources/messages_ja_JP.properties
@@ -694,11 +694,13 @@ label.latest.events=\u6700\u65b0\u30a4\u30d9\u30f3\u30c8
 label.launch=\u8d77\u52d5
 label.launch.vm=VM \u306e\u8d77\u52d5
 label.launch.zone=\u30be\u30fc\u30f3\u306e\u8d77\u52d5
-label.LB.isolation=\u8ca0\u8377\u5206\u6563\u5206\u96e2
+label.lb.algorithm.leastconn=\u6700\u5c0f\u63a5\u7d9a
+label.lb.algorithm.roundrobin=\u30e9\u30a6\u30f3\u30c9\u30ed\u30d3\u30f3
+label.lb.algorithm.source=\u9001\u4fe1\u5143
+label.LB.isolation=LB \u5206\u96e2
 label.ldap.configuration=LDAP \u69cb\u6210
 label.ldap.group.name=LDAP \u30b0\u30eb\u30fc\u30d7
 label.ldap.port=LDAP \u30dd\u30fc\u30c8
-label.least.connections=\u6700\u5c0f\u63a5\u7d9a
 label.level=\u30ec\u30d9\u30eb
 label.linklocal.ip=\u30ea\u30f3\u30af \u30ed\u30fc\u30ab\u30eb IP \u30a2\u30c9\u30ec\u30b9
 label.load.balancer=\u8ca0\u8377\u5206\u6563\u88c5\u7f6e
@@ -991,6 +993,8 @@ label.root.disk.controller=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30b3\u3
 label.root.disk.offering=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0
 label.root.disk.size=\u30eb\u30fc\u30c8 \u30c7\u30a3\u30b9\u30af \u30b5\u30a4\u30ba
 label.round.robin=\u30e9\u30a6\u30f3\u30c9\u30ed\u30d3\u30f3
+label.router.vm.scaled.up=\u30eb\u30fc\u30bf\u30fc VM \u306e\u30b5\u30a4\u30ba\u304c\u62e1\u5927\u3055\u308c\u307e\u3057\u305f
+label.routing.host=\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0 \u30db\u30b9\u30c8
 label.routing=\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0
 label.rules=\u898f\u5247
 label.running.vms=\u5b9f\u884c\u4e2d\u306e VM
@@ -1060,6 +1064,7 @@ label.snapshot=\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8
 label.sockets=\u30bd\u30b1\u30c3\u30c8
 label.source.nat=\u9001\u4fe1\u5143 NAT
 label.source=\u9001\u4fe1\u5143
+label.source.port=\u9001\u4fe1\u5143\u30dd\u30fc\u30c8
 label.specify.IP.ranges=IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u6307\u5b9a
 label.specify.vlan=VLAN \u3092\u6307\u5b9a\u3059\u308b
 label.specify.vxlan=VXLAN \u3092\u6307\u5b9a\u3059\u308b

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_ko_KR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ko_KR.properties b/client/WEB-INF/classes/resources/messages_ko_KR.properties
index 612aecc..974fb47 100644
--- a/client/WEB-INF/classes/resources/messages_ko_KR.properties
+++ b/client/WEB-INF/classes/resources/messages_ko_KR.properties
@@ -636,8 +636,10 @@ label.latest.events=\ucd5c\uc2e0 \uc774\ubca4\ud2b8
 label.launch=\uc2dc\uc791
 label.launch.vm=VM \uc2dc\uc791
 label.launch.zone=Zone \uc2dc\uc791
+label.lb.algorithm.leastconn=\ucd5c\uc18c \uc811\uc18d
+label.lb.algorithm.roundrobin=\ub77c\uc6b4\ub4dc \ub85c\ube48
+label.lb.algorithm.source=\uc2dc\uc791 \uc704\uce58
 label.LB.isolation=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \ubd84\ub9ac
-label.least.connections=\ucd5c\uc18c \uc811\uc18d
 label.level=\ub808\ubca8
 label.load.balancer=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc7a5\uce58
 label.load.balancing.policies=\ub124\ud2b8\uc6cc\ud06c \ub85c\ub4dc \uacf5\uc720 \uc815\ucc45
@@ -894,8 +896,8 @@ label.revoke.project.invite=\ucd08\ub300 \ucde8\uc18c
 label.role=\uc5ed\ud560
 label.root.disk.controller=\ub8e8\ud2b8 \ub514\uc2a4\ud06c \ucf58\ud2b8\ub864\ub7ec
 label.root.disk.offering=\ub8e8\ud2b8 \ub514\uc2a4\ud06c\uc81c\uacf5
-label.root.disk.size=\ub8e8\ud2b8 \ub514\uc2a4\ud06c 
 label.round.robin=\ub77c\uc6b4\ub4dc \ub85c\ube48
+label.root.disk.size=\ub8e8\ud2b8 \ub514\uc2a4\ud06c
 label.routing=\ub77c\uc6b0\ud305
 label.rules=\uaddc\uce59
 label.running.vms=\uc2e4\ud589\uc911 VM
@@ -952,7 +954,6 @@ label.snapshot.s=\uc2a4\ub0c5\uc0f7
 label.snapshots=\uc2a4\ub0c5\uc0f7
 label.snapshot=\uc2a4\ub0c5\uc0f7
 label.source.nat=\uc804\uc1a1\uc6d0 NAT
-label.source=\uc2dc\uc791 \uc704\uce58
 label.specify.IP.ranges=IP \uc8fc\uc18c \ubc94\uc704 \uc9c0\uc815
 label.specify.vlan=VLAN \uc9c0\uc815
 label.specify.vxlan=VXLAN \uc9c0\uc815

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_nb_NO.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_nb_NO.properties b/client/WEB-INF/classes/resources/messages_nb_NO.properties
index 8d85de1..462f51d 100644
--- a/client/WEB-INF/classes/resources/messages_nb_NO.properties
+++ b/client/WEB-INF/classes/resources/messages_nb_NO.properties
@@ -540,8 +540,10 @@ label.last.name=Etternavn
 label.latest.events=Siste hendelser
 label.launch=Start
 label.launch.vm=Start VM
+label.lb.algorithm.leastconn=F\u00e6rrest tilkoblinger
+label.lb.algorithm.roundrobin=Ringdistribusjon
+label.lb.algorithm.source=Kilde
 label.LB.isolation=LB-isolering
-label.least.connections=F\u00e6rrest tilkoblinger
 label.load.balancer=Lastbalanserer
 label.load.balancing=Lastbalansering
 label.load.balancing.policies=Regler for lastbalansering
@@ -743,7 +745,6 @@ label.review=Gjennomg\u00e5
 label.revoke.project.invite=Tilbakekall invitasjonen
 label.role=Rolle
 label.root.disk.size=Rotdiskst\u00f8rrelse
-label.round.robin=Ringdistribusjon
 label.routing=Ruting
 label.rules=Regler
 label.running.vms=Kj\u00f8rende VMer
@@ -783,7 +784,6 @@ label.shared=Delt
 label.shutdown.provider=Steng tilbyder
 label.size=St\u00f8rrelse
 label.skip.guide=Jeg har brukt CloudStack tidligere. Hopp over denne veiviseren
-label.source=Kilde
 label.source.nat=Kilde NAT
 label.specify.IP.ranges=Spesifiser IP-rekker
 label.specify.vlan=Spesifiser VLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_nl_NL.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_nl_NL.properties b/client/WEB-INF/classes/resources/messages_nl_NL.properties
index 2a74419..0f46729 100644
--- a/client/WEB-INF/classes/resources/messages_nl_NL.properties
+++ b/client/WEB-INF/classes/resources/messages_nl_NL.properties
@@ -694,11 +694,13 @@ label.latest.events=Laatste gebeurtenissen
 label.launch=Lanceer
 label.launch.vm=Lanceer VM
 label.launch.zone=Lanceer zone
+label.lb.algorithm.leastconn=Minste connecties
+label.lb.algorithm.roundrobin=Round-robin
+label.lb.algorithm.source=Bron
 label.LB.isolation=LB isolatie
 label.ldap.configuration=LDAP Configuratie
 label.ldap.group.name=LDAP Groep
 label.ldap.port=LDAP poort
-label.least.connections=Minste connecties
 label.level=Level
 label.linklocal.ip=Link Local IP Adres
 label.load.balancer=Load Balancer
@@ -991,6 +993,7 @@ label.root.disk.controller=Root schijf controller
 label.root.disk.offering=Root Schijf Aanbieding
 label.root.disk.size=Grootte root volume
 label.round.robin=Round-robin
+label.router.vm.scaled.up=Router VM Omhoog  Geschaald
 label.routing=Routing
 label.rules=Regels
 label.running.vms=Draaiende VMs
@@ -1057,8 +1060,10 @@ label.snapshot.schedule=Stel herhalende Snapshot in
 label.snapshot=Snapshot
 label.snapshot.s=Snapshot (s)
 label.snapshots=Snapshots
-label.sockets=Sockets
 label.source=Bron
+label.SNMP.community=SNMP Community
+label.SNMP.port=SNMP Poort
+label.sockets=CPU Sockets
 label.source.nat=Source NAT
 label.specify.IP.ranges=Specificeer IP ranges
 label.specify.vlan=Specificeer VLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_pl.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_pl.properties b/client/WEB-INF/classes/resources/messages_pl.properties
index 8a5c690..da78302 100644
--- a/client/WEB-INF/classes/resources/messages_pl.properties
+++ b/client/WEB-INF/classes/resources/messages_pl.properties
@@ -283,7 +283,7 @@ label.lang.russian=Rosyjski
 label.lang.spanish=Hiszpia\u0144ski
 label.last.name=Nazwisko
 label.launch=Rozpocznij
-label.least.connections=Ostatnie po\u0142\u0105czenie
+label.lb.algorithm.leastconn=Ostatnie po\u0142\u0105czenie
 label.level=Poziom
 label.loading=Wczytywanie
 label.local=Lokalne

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_pt_BR.properties b/client/WEB-INF/classes/resources/messages_pt_BR.properties
index 3dec451..a482575 100644
--- a/client/WEB-INF/classes/resources/messages_pt_BR.properties
+++ b/client/WEB-INF/classes/resources/messages_pt_BR.properties
@@ -694,11 +694,13 @@ label.latest.events=\u00daltimos eventos
 label.launch=Executar
 label.launch.vm=Executar VM
 label.launch.zone=Executar zona.
+label.lb.algorithm.leastconn=Least connections
+label.lb.algorithm.roundrobin=Round-robin
+label.lb.algorithm.source=Origem
 label.LB.isolation=Isolamento de LB
 label.ldap.configuration=Configura\u00e7\u00e3o do LDAP
 label.ldap.group.name=Grupo LDAP
 label.ldap.port=Porta do LDAP
-label.least.connections=Least connections
 label.level=N\u00edvel
 label.linklocal.ip=Endere\u00e7o IP do Link Local
 label.load.balancer=Load Balancer
@@ -990,7 +992,6 @@ label.role=Fun\u00e7\u00e3o
 label.root.disk.controller=Controlador do disco Root
 label.root.disk.offering=Oferta de Disco ROOT
 label.root.disk.size=Tamanho do disco root
-label.round.robin=Round-robin
 label.routing=Roteamento
 label.rules=Regras
 label.running.vms=VMs Rodando
@@ -1059,7 +1060,6 @@ label.snapshot.s=Snapshot (s)
 label.snapshots=Snapshots
 label.sockets=Sockets
 label.source.nat=Source NAT
-label.source=Origem
 label.specify.IP.ranges=Especifique range de IP
 label.specify.vlan=Especificar VLAN
 label.specify.vxlan=Especificar VXLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_ru_RU.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ru_RU.properties b/client/WEB-INF/classes/resources/messages_ru_RU.properties
index 1dc4029..5402407 100644
--- a/client/WEB-INF/classes/resources/messages_ru_RU.properties
+++ b/client/WEB-INF/classes/resources/messages_ru_RU.properties
@@ -672,8 +672,10 @@ label.latest.events=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0438 \u044
 label.launch=\u0417\u0430\u043f\u0443\u0441\u043a
 label.launch.vm=\u0417\u0430\u043f\u0443\u0441\u043a \u0412\u041c
 label.launch.zone=\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0437\u043e\u043d\u0443
+label.lb.algorithm.leastconn=Least connections
+label.lb.algorithm.roundrobin=Round-robin
+label.lb.algorithm.source=\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a
 label.LB.isolation=\u0418\u0437\u043e\u043b\u044f\u0446\u0438\u044f LB
-label.least.connections=Least connections
 label.level=\u0423\u0440\u043e\u0432\u0435\u043d\u044c
 label.linklocal.ip=\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP \u0430\u0434\u0440\u0435\u0441
 label.load.balancer=\u0411\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438
@@ -953,7 +955,6 @@ label.role=\u0420\u043e\u043b\u044c
 label.root.disk.controller=\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430
 label.root.disk.offering=\u0420\u0435\u0441\u0443\u0440\u0441 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430
 label.root.disk.size=\u0420\u0430\u0437\u043c\u0435\u0440 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430
-label.round.robin=Round-robin
 label.routing=\u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f
 label.rules=\u041f\u0440\u0430\u0432\u0438\u043b\u0430
 label.running.vms=\u0417\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0412\u041c
@@ -1016,7 +1017,6 @@ label.snapshots=\u0421\u043d\u0438\u043c\u043a\u0438
 label.snapshot.s=\u0421\u043d\u0438\u043c\u043e\u043a/\u0441\u043d\u0438\u043c\u043a\u0438
 label.snapshot=\u0421\u043d\u0438\u043c\u043e\u043a
 label.source.nat=Source NAT
-label.source=\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a
 label.specify.IP.ranges=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432
 label.specify.vlan=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 VLAN
 label.specify.vxlan=\u0423\u043a\u0430\u0436\u0438\u0442\u0435 VXLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/client/WEB-INF/classes/resources/messages_zh_CN.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_zh_CN.properties b/client/WEB-INF/classes/resources/messages_zh_CN.properties
index 74384f2..5737597 100644
--- a/client/WEB-INF/classes/resources/messages_zh_CN.properties
+++ b/client/WEB-INF/classes/resources/messages_zh_CN.properties
@@ -693,12 +693,14 @@ label.last.name=\u59d3\u6c0f
 label.latest.events=\u6700\u65b0\u4e8b\u4ef6
 label.launch=\u542f\u52a8
 label.launch.vm=\u542f\u52a8 VM
-label.launch.zone=\u542f\u52a8\u533a\u57df
+label.launch.zone=\u542f\u52a8\u8d44\u6e90\u57df
+label.lb.algorithm.leastconn=\u6700\u5c11\u8fde\u63a5\u7b97\u6cd5
+label.lb.algorithm.roundrobin=\u8f6e\u8be2\u7b97\u6cd5
+label.lb.algorithm.source=\u6e90\u7b97\u6cd5
 label.LB.isolation=\u8d1f\u8f7d\u5e73\u8861\u5668\u9694\u79bb
 label.ldap.configuration=LDAP \u914d\u7f6e
 label.ldap.group.name=LDAP \u7ec4
 label.ldap.port=LDAP \u7aef\u53e3
-label.least.connections=\u6700\u5c11\u8fde\u63a5\u7b97\u6cd5
 label.level=\u7ea7\u522b
 label.linklocal.ip=\u94fe\u63a5\u672c\u5730 IP \u5730\u5740
 label.load.balancer=\u8d1f\u8f7d\u5e73\u8861\u5668
@@ -991,6 +993,8 @@ label.root.disk.controller=\u6839\u78c1\u76d8\u63a7\u5236\u5668
 label.root.disk.offering=\u6839\u78c1\u76d8\u65b9\u6848
 label.root.disk.size=\u6839\u78c1\u76d8\u5927\u5c0f
 label.round.robin=\u8f6e\u8be2\u7b97\u6cd5
+label.router.vm.scaled.up=\u5df2\u6269\u5c55\u8def\u7531\u5668 VM
+label.routing.host=\u6b63\u5728\u8def\u7531\u4e3b\u673a
 label.routing=\u6b63\u5728\u8def\u7531
 label.rules=\u89c4\u5219
 label.running.vms=\u6b63\u5728\u8fd0\u884c\u7684 VM
@@ -1060,6 +1064,7 @@ label.snapshot=\u5feb\u7167
 label.sockets=CPU \u63d2\u69fd\u6570\u91cf
 label.source.nat=\u6e90 NAT
 label.source=\u6e90\u7b97\u6cd5
+label.source.port=\u6e90\u7aef\u53e3
 label.specify.IP.ranges=\u6307\u5b9a IP \u8303\u56f4
 label.specify.vlan=\u6307\u5b9a VLAN
 label.specify.vxlan=\u6307\u5b9a VXLAN

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/ui/dictionary.jsp
----------------------------------------------------------------------
diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp
index c157314..d37637b 100644
--- a/ui/dictionary.jsp
+++ b/ui/dictionary.jsp
@@ -714,8 +714,10 @@ dictionary = {
 'label.latest.events': '<fmt:message key="label.latest.events" />',
 'label.launch': '<fmt:message key="label.launch" />',
 'label.launch.vm': '<fmt:message key="label.launch.vm" />',
+'label.lb.algorithm.leastconn': '<fmt:message key="label.lb.algorithm.leastconn" />',
+'label.lb.algorithm.roundrobin': '<fmt:message key="label.lb.algorithm.roundrobin" />',
+'label.lb.algorithm.source': '<fmt:message key="label.lb.algorithm.source" />',
 'label.LB.isolation': '<fmt:message key="label.LB.isolation" />',
-'label.least.connections': '<fmt:message key="label.least.connections" />',
 'label.level': '<fmt:message key="label.level" />',
 'label.linklocal.ip': '<fmt:message key="label.linklocal.ip" />',
 'label.load.balancer': '<fmt:message key="label.load.balancer" />',

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index beab1a9..8e70034 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -1583,17 +1583,9 @@
                                             'algorithm': {
                                                 label: 'label.algorithm',
                                                 select: function(args) {
+                                                    var data = getLBAlgorithms(args.context.networks[0]);
                                                     args.response.success({
-                                                        data: [{
-                                                            name: 'roundrobin',
-                                                            description: _l('label.round.robin')
-                                                        }, {
-                                                            name: 'leastconn',
-                                                            description: _l('label.least.connections')
-                                                        }, {
-                                                            name: 'source',
-                                                            description: _l('label.source')
-                                                        }]
+                                                        data: data
                                                     });
                                                 }
                                             },
@@ -3355,20 +3347,9 @@
                                                 label: 'label.algorithm',
                                                 isEditable: true,
                                                 select: function(args) {
+                                                    var data = getLBAlgorithms(args.context.networks[0]);
                                                     args.response.success({
-                                                        data: [{
-                                                            id: 'roundrobin',
-                                                            name: 'roundrobin',
-                                                            description: _l('label.round.robin')
-                                                        }, {
-                                                            id: 'leastconn',
-                                                            name: 'leastconn',
-                                                            description: _l('label.least.connections')
-                                                        }, {
-                                                            id: 'source',
-                                                            name: 'source',
-                                                            description: _l('label.source')
-                                                        }]
+                                                        data: data
                                                     });
                                                 }
                                             },
@@ -6113,6 +6094,44 @@
 				});             		
         	} 
         }
+    };
+
+    var getLBAlgorithms = function(networkObj) {
+        if (!networkObj || !networkObj.service) {
+            return [];
+        }
+
+        var lbService = $.grep(networkObj.service, function(service) {
+            return service.name == 'Lb';
+        })[0];
+
+        if (!lbService || !lbService.capability) {
+            return [];
+        }
+
+        var algorithmCapabilities = $.grep(
+            lbService.capability,
+            function(capability) {
+                return capability.name == 'SupportedLbAlgorithms';
+            }
+        )[0];
+
+        if (!algorithmCapabilities) {
+            return [];
+        }
+
+        var algorithms = algorithmCapabilities.value.split(',');
+
+        if (!algorithms) {
+            return [];
+        }
+
+        var data = [];
+        $(algorithms).each(function() {
+            data.push({id: this.valueOf(), name: this.valueOf(), description: _l('label.lb.algorithm.' + this.valueOf())});
+        });
+
+        return data;
     }
 
 })(cloudStack, jQuery);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1f21c298/ui/scripts/vpc.js
----------------------------------------------------------------------
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index 770ee9b..4658bce 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -636,13 +636,13 @@
                                             args.response.success({
                                                 data: [{
                                                     id: 'source',
-                                                    description: 'source'
+                                                    description: _l('label.lb.algorithm.source')
                                                 }, {
                                                     id: 'roundrobin',
-                                                    description: 'roundrobin'
+                                                    description: _l('label.lb.algorithm.roundrobin')
                                                 }, {
                                                     id: 'leastconn',
-                                                    description: 'leastconn'
+                                                    description: _l('label.lb.algorithm.leastconn')
                                                 }]
                                             });
                                         }
@@ -3646,13 +3646,13 @@
                                             args.response.success({
                                                 data: [{
                                                     name: 'roundrobin',
-                                                    description: _l('label.round.robin')
+                                                    description: _l('label.lb.algorithm.roundrobin')
                                                 }, {
                                                     name: 'leastconn',
-                                                    description: _l('label.least.connections')
+                                                    description: _l('label.lb.algorithm.leastconn')
                                                 }, {
                                                     name: 'source',
-                                                    description: _l('label.source')
+                                                    description: _l('label.lb.algorithm.source')
                                                 }]
                                             });
                                         }